Platform of Trust Platform Design Guide
Developer PortalAPI DocsOntology
  • Purpose and scope
  • Developer eXperience Strategy
  • Suggest changes
  • API Requests
    • Request validation
    • Response codes used
    • Error handling
  • General API guidelines
    • Performance
    • Documentation
    • Data models used
    • Use HATEOAS
    • Use HTTP Methods
    • Dates and time
    • Naming conventions
    • Pagination, partial response and sorting
    • API Testing
  • API Headers
    • Mandatory elements & behaviour
    • Rate limiting information
  • API Security
    • Authentication and authorization
    • SSL everywhere - all the time
  • API versioning guidelines
    • Versioning Rules
    • Breaking changes
    • Non-breaking changes example
    • Retirement process
    • Add new API to documentation
    • Add new endpoint
  • API Migration Policies
    • Deprecating API
    • Sunsetting API
    • Blackout Testing
    • Migration Email Template
    • API Blackout Test Email Template
    • API Deprecation Email
    • Deprecating an older API
  • Ontologies
    • About ontologies
    • Web Ontology Language, OWL
    • Ontology editor
    • Edit ontology
    • Add new subclass
    • Naming convention logic
    • Extending the ontology
  • Design Guideline
    • Colors
    • Typography
    • Grids and Space
    • Input forms - Text field
    • Input forms - Text area
    • Buttons
    • Checkbox
    • Radio buttons
    • Date picker
    • Form control - Single select
    • Toggle
    • Pagination
    • Status pills
    • Tables
    • Effects
    • Dialogues
Powered by GitBook
On this page
  • Scope
  • Aim and reasoning
  • Metrics
  • General guidelines

Was this helpful?

Purpose and scope

Scope

This API Design Guide is intended for Platform of Trust:

  • Internal REST APIs

  • Public exposed REST APIs regarding public data access by 3rd party developers and listed in API Docs

  • Developer eXperience

  • Internal Development practices

  • Ontology development and guidance.

  • Design guidelines for visual elements

Aim and reasoning

Since REST is not a standard but architecture style, it leaves a lot of freedoms in implementation. Thus result can be sometimes confusing and hard to learn APIs. API Design Guide is a tool to unify REST APIs in given context. Benefits of API Design Guide can be defined to be:

  • Unified API family. Professional look and feel among all APIs.

  • Lower learning curve. If all API implementations follow the same guidelines, the resulting API family is cohorent and learning curve for 3rd party API consumer is lower. For API consumer APIs behave similarly and thus feeling of intuition can occur.

  • No need to reinvent the wheel. Not all APIs are implemented by one team or even inside same organisation. API Guide line removes the need to reinvent practicalities regarding for example error handling and naming conventions to mention a few.

  • Faster API Design. Given that APIs behaviour is the same regardless of API, some specifications in Design can be reused as is.

  • Testing APIs is faster. Tests can be more easily modified to fit multiple APIs and thus testing is easier. As a result API development is faster.

Metrics

Metrics used in Platform of Trust are defined under the topics.

General guidelines

Our goal is consistency, maintainability, and best practices across applications. APIs aim to balance a truly RESTful API interface with a positive developer experience (DX).

In a nutshell:

  • Keep APIs' functionalities as simple as possible. The endpoints do only one thing, but they do it well. APIs build for "Answer to Life, the Universe and Everything" are just cumbersome, hard to use, too complex to maintain and error prone.

  • Avoid overlapping functionalities between different APIs.

  • In error case include in the API response verbose description.

    • include also a description about erroneous parameter value, if it is feasible.

  • API must have support for the OPTIONS endpoint to enable cross-origin API calls (CORS).

  • Use standards - don't reinvent the wheel (that only causes more work in implementation and in consumer side too).

  • Keep verbs out of your base URLs.

  • Use HTTP verbs to operate on the collections and elements.

NextDeveloper eXperience Strategy

Last updated 4 years ago

Was this helpful?