API Terms of Service Building Blocks

As I study the API space, and profile the companies, services, and tooling I come across I'm always looking for the common building blocks in use across API operations. These are derived the features, and valuable elements of API operations, and the companies who are servicing this particular area of the API space.

  • Other
    • Parser -
    • Validator -
    • Github Sync -
    • Command Line -
    • Translator -
    • Dereference Relationships -
    • API counts -
    • Governance -
    • Retrieve a collection -
    • Asynchronicity -
  • Requests
    • SSL -
    • Host -
    • Resource -
    • Action -
    • Verbs -
    • Parameters -
    • Headers -
    • Body -
    • Versioning -
    • Pagination -
    • Filtering -
    • Time Selection -
    • Sorting -
    • Field Selection -
    • Granularity -
    • Relationship -
    • HTTP Headers -
  • Response
    • Status Codes -
    • Error Handling -
    • Rate Limits -
    • Caching -
    • eTags -
    • Request-Ids -
    • UTF-8 -
    • CORS -
    • JSONP -
    • Schema -
    • Compression -
    • Collection -
    • Sorting a collection -
    • HTTP Headers -
  • Media Types
    • application/json -
    • application/xml -
    • application/csv -
    • text/html -
    • application/atom+xml -
    • Content negociation and media types -
  • Schema
    • JSON Schema -
    • Schema.org -
    • Markdown Syntax for Object Notation (MSON) -
  • Open Standards
    • iCalendar -
    • vCard -
    • KML -
    • geoRSS -
    • m3u -
    • UUID -
    • ISO 8601 (Date / Time) -
    • ISO 4217 (Currency) -
    • ISO 3166 (Country) -
    • RDFa -
    • RFC 7807 -
  • Design Process
    • Definitions -
    • Editor -
    • Forkable -
    • Sharing -
    • Collaboration -
    • Annotation -
    • Translation -
    • Highlighting -
  • Organization
    • Guide -
    • Notebook -
    • Collections -
    • Dictionary -
    • Contact -
  • Best Practices
    • Use the Internet -
    • Simplicity -
    • Consistency -
    • Easy to Read -
    • Easy to Learn -
    • Hard to Misuse -
    • Audience Focused -
    • Experience Over Resource -
    • Use Your Own APIs -
    • Notifying API consumers -
    • Case -
    • Global design -
    • Naming -
  • Internationalization
    • Accept-Language -
    • Language -
  • HTTP Status User Error
    • 429 Too Many Requests -
    • 411 Length Required -
    • 408 Request Timeout -
    • 406 Not Acceptable -
    • 404 Not Found -
    • 409 Conflict -
    • 415 Unsupported Media Type -
    • 400 Bad Request -
    • 422 Unprocessable Entity -
    • 403 Forbidden -
    • 423 Locked -
    • 405 Method Not Allowed -
    • 410 Gone -
    • 428 Precondition Required -
    • 412 Precondition Failed -
    • 401 Unauthorized -
  • HTTP Methods
    • PATCH -
    • OPTIONS -
    • HEAD -
    • GET -
    • PUT -
    • POST -
    • Forbidden methods alternatives -
    • DELETE -
  • HTTP Status Redirection
    • 303 See Other -
    • 302 Found -
    • 304 Not Modified -
    • 301 Moved Permanently -
  • HTTP Status Server Error
    • 501 Not Implemented -
    • 500 Internal Server Error -
    • 503 Service Unavailable -
  • HTTP Status Success
    • 202 Accepted -
    • 200 OK -
    • 204 No Content -
    • 206 Partial Content -
    • 201 Created -
  • Error handling
    • Error format -
    • Errors -
  • Resources
    • Update resource -
    • Track change -
    • Batch Bulk -
    • Update resource partially -
    • Delete resource -
    • Retrieve resource partially -
    • Relationships -
    • Create resource with a specific ID -
    • Action resource -
    • Resource ID -
    • Resource's state -
    • Retrieve resource -
    • ID with semantic -
    • Replace resource -
    • Resource -
    • URL format -
    • Create resource -
  • Hypermedia
    • Collection+JSON -
    • Extensible Markup Language (XML) -
    • Home Documents -
    • Hydra -
    • Hypertext Application Language (HAL) -
    • JSON API -
    • Mason -
    • Noun As Resource With HyperLinks (NARWHL) -
    • Siren -
    • Uniform Basis for Exchanging Representations (UBER) -
    • XForms -
    • XML Inclusions (XInclude) -
    • XML Linking Language (XLink) -
    • xml:id -

These building blocks are constantly being added to and reorganized. If there is something you think should be here feel free to let me know. Remember that this represents my living research, and will evolve, expand and actually seed new research areas as I find the time to pay attention to API testing.