Best Practices for REST API Design

This page summarizes the projects mentioned and recommended in the original post on news.ycombinator.com

Our great sponsors
  • SurveyJS - Open-Source JSON Form Builder to Create Dynamic Forms Right in Your App
  • InfluxDB - Power Real-Time Data Analytics at Scale
  • WorkOS - The modern identity platform for B2B SaaS
  • api-guidelines

    Microsoft REST API Guidelines

  • webmachine

    A REST-based system for building web applications.

    I interrupted my reading at 'Accept and respond with JSON' to write this comment, before I skipped over that section and returned to reading the rest.

    Folks that aren't aware of Webmachine should take a look:

    https://github.com/webmachine/webmachine

    The 'Accept' header should determine the response type, but content negotiation is something that few bother to implement. Webmachine does that for you.

    Also, shameless plug for my OCaml port:

    https://github.com/inhabitedtype/ocaml-webmachine

  • SurveyJS

    Open-Source JSON Form Builder to Create Dynamic Forms Right in Your App. With SurveyJS form UI libraries, you can build and style forms in a fully-integrated drag & drop form builder, render them in your JS app, and store form submission data in any backend, inc. PHP, ASP.NET Core, and Node.js.

  • http-decision-diagram

    An activity diagram to describe the resolution of HTTP response status codes, given various headers.

    > The 'Accept' header should determine the response type

    Also, the HTTP decision diagram: https://github.com/for-GET/http-decision-diagram/tree/master...

  • grpc-gateway

    gRPC to JSON proxy generator following the gRPC HTTP spec

    I had really good success with https://github.com/grpc-ecosystem/grpc-gateway for returning json to the web from a grpc system

  • OpenAPI-Specification

    The OpenAPI Specification Repository

    Yep. OpenAPI spec is not rich enough to represent relations like this so its rubbish for FE dev to use to generate models/api client.

    In general, the tooling/spec has thousands of open bugs, isnt going anywhere, moves very slowly and is missing fundamental features.

    https://github.com/OAI/OpenAPI-Specification/issues/1998 heres the ticket where it will inevitably be ignored and die.

  • swagger-tools

    Discontinued A Node.js and browser module that provides tooling around Swagger.

    The above referenced PoC service based on express uses https://github.com/apigee-127/swagger-tools which surfaces a web app by which front end devs navigate through the published API endpoints. They can use the web app to call the service via the endpoint or copy and paste sample code that calls the service. Most open api integrations support this kind of functionality.

  • google.aip.dev

    API Improvement Proposals. https://aip.dev/

    As to updates (and other aspects of API design too), I highly recommend taking a look at the solutions proposed at https://aip.dev - e.g. in case of update, https://aip.dev/134 (though there's some slight not-yet-resolved inconsistency observed recently by one user: https://github.com/aip-dev/google.aip.dev/issues/673)

  • InfluxDB

    Power Real-Time Data Analytics at Scale. Get real-time insights from all types of time series data with InfluxDB. Ingest, query, and analyze billions of data points in real-time with unbounded cardinality.

NOTE: The number of mentions on this list indicates mentions on common posts plus user suggested alternatives. Hence, a higher number means a more popular project.

Suggest a related project

Related posts