Standard Endpoints

Every resource server must provide a set of standard endpoints to ensure that clients can discover and interact with the service.

The following endpoints are required for every resource server:

  • Well-Known Resources: /.well-known
  • Public API Descriptor: /openapi.(json|yaml)

/.well-known/

At the root of every resource server, a .well-known directory must exist as per RFC-5785. This directory is there to contain URL’s that will never change, and therefore ‘well-known’ for any client that wishes to perform some method of autodiscovery. Similar to DNS-SD, it’s purpose is a way to discover a resource server’s configuration without having to reference external documentation.

Creating a .well-known directory within a subdirectory is expressly forbidden. While technically permitted under certain readings of some RFC’s, it obfuscates the location of such documents and thus makes autodiscovery difficult at best, and impossible at worst.

/openapi.(json|yaml)

Every resource server must provide its own OpenAPI specification document at a consistent path. This API descriptor must be accurate enough, and well documented enough, to generate SDKs and clients directly from the document.

This endpoint exposes an OpenAPI v3.0.3 document that describes the public API of this version of the microservice. This endpoint must return appropriately formatted content for both application/json and application/yaml. Each new version of the API should be added to this same document; for details on the document structure, please refer to the OpenAPI Specification - Version 3.0.3.