-
Notifications
You must be signed in to change notification settings - Fork 40
Omnummeren API Design rules
Mark Strijker edited this page Apr 18, 2023
·
14 revisions
- /core/http-safety: Adhere to HTTP safety and idempotency semantics for operations.
- /core/stateless: Do not maintain session state on the server.
- /core/interface-language: Define interfaces in Dutch unless there is an official English glossary available.
- /core/naming-resources: Use nouns to name resources.
- /core/nested-child: Use nested URIs for child resources.
- /core/resource-operations: Model resource operations as a sub-resource or dedicated resource.
- /core/doc-language: Publish documentation in Dutch unless there is existing documentation in English.
- /core/deprecation-schedule: Include a deprecation schedule when publishing API changes.
- /core/transition-period: Schedule a fixed transition period for a new major API version.
- /core/hide-implementation: Hide irrelevant implementation details.
- /core/naming-collections: Use plural nouns to name collection resources.
- /core/changelog: Publish a changelog for API changes between versions.
- /core/http-methods: Only apply standard HTTP methods.
- /core/doc-openapi: Use OpenAPI Specification for documentation.
- /core/uri-version: Include the major version number in the URI.
- /core/no-trailing-slash: Leave off trailing slashes from URIs.
- /core/publish-openapi: Publish OAS document at a standard location in JSON-format.
- /core/semver: Adhere to the Semantic Versioning model when releasing API changes.
- /core/version-header: Return the full version number in a response header.
Geo Module voorbeeld:
*/geo/geometric-context: Place results of a global spatial query in the relevant geometric context
*
- /hypermedia/absolute-uris (API-70): Provide absolute URIs for hyperlinks
- /hypermedia/support-hal (API-71): Support the HAL media type for every GET response
- /hypermedia/link-href (API-72): Provide at least an href attribute for every link object
- /hypermedia/self-link (API-73): Provide self-referencing links for all resources
- /hypermedia/nav-get (API-74): Provide navigational links pointing to GET operations only
- /hypermedia/nav-functional (API-75): Only provide navigational links when there is a clear functional goal
- /hypermedia/external-links (API-76): Treat external links as regular resource attributes
- /naming/path-case (API-59): Use spinal-case for path segments
- /naming/path-diacritics (API-60): Normalize characters with diacritics to their base characters for path segments
- /naming/path-symbols (API-67): Omit symbols and punctuation marks other than hyphens from path segments
- /naming/api-resource (API-61): Do not explicitly indicate that a resource is an API
- /naming/file-extensions (API-62): Do not use file extensions in path segments
- /naming/abbreviations (API-63): Do not use nonstandard abbreviations as resource names
- /naming/query-keys (API-69): Use lowerCamelCase for query parameter keys