How to Design Better APIs

This page summarizes the projects mentioned and recommended in the original post on

Our great sponsors
  • SonarQube - Static code analysis for 29 languages.
  • - Download’s Tech Salary Report
  • Scout APM - Truly a developer’s best friend
  • WHATWG HTML Standard

    HTML Standard

    I don’t know what OP thinks is the reason, but the actual reason is CORS.

    Web Devs (such as me) have asked for e.g. DELETE as an acceptable formmethod (e.g. however WHATWG always pushes back citing security concerns such as CORS.

    I suspect this is not what OP had in mind since it is trivial to send a DELETE request with a simple JavaScript:


  • jsonrpc-ts

    Strongly 💪 Typed Fast and lightweight JSON RPC 2.0 Client for Nodejs

    Active use is really irrelevant if you only plan on using it inside a company, because you can implement a client and server within 30 mins to an hour, no external tools needed. The spec is clear and readable. It's excellent. We use it with a TypeScript codebase and just share the interfaces for the services in a monorepo.

    If you want a more advanced implementation with type inference for Typescript you can use this:

    I'd still recommend implementing your own, my own implementation is based off the one above.

  • SonarQube

    Static code analysis for 29 languages.. Your projects are multi-language. So is SonarQube analysis. Find Bugs, Vulnerabilities, Security Hotspots, and Code Smells so you can release quality code every time. Get started analyzing your projects today for free.

  • twirp

    A simple RPC framework with protobuf service definitions

  • api-development-tools

    :books: A collection of useful resources for building RESTful HTTP+JSON APIs.

    For those in Security Theatre of HTTP APIs, I found this also useful:

  • python-rapidjson

    Python wrapper around rapidjson

    > * Human readable

    Computers are the main consumers of APIs, and ISO 8601 is far from machine-readable.

    For example, in Elixir, DateTime.from_iso8601/1 won't recognize "2022-03-12T07:36:08" even though it's valid. I had to rewrite a chunk of Python's radidjson wrapper to 1-9 digit fractional seconds (1).

    I'm willing to bet 99% of ISO8601 will fail to handle all aspects of the spec. So when you say "ISO8601" what you're really saying is "our [probably undocumented, and possibly different depending on what system you're hitting] version of the ISO-86001 spec."


  • indie-rpc

    A simple RPC framework for Kotlin services

    >Sometimes, I feel that we ought to have a simple protocol, on top of HTTP, to simply do remote procedure calls and throw out all this HTTP verbs crap. Every request is a http POST, with or without any body and the data transfer is in binary. So that objects can be passed back and forth between client and server.

  • webrpc

    webrpc is a schema-driven approach to writing backend services for modern Web apps and networks


    Download’s Tech Salary Report. Median salaries, most in-demand technologies, state of the remote work... all you need to know your worth on the market by tech recruitment platform

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