On Nov 13, 2018, I spoke on "Yes, you should provide a client library for your API!" at RubyConf in Los Angeles, CA. The talk discussed the benefits of providing client libraries for HTTP-based APIs, and some techniques for writing them.
Here’s a small list of resources that I either mentioned in the talk or are closely related. Feel free to share more in the comments!
Code generation frameworks
- OpenAPI is an open standard that works well for REST APIs.
- gRPC is a high-performance RPC framework originally developed by Google, that uses HTTP/2 and protocol buffers.
- Apache Thrift is an RPC framework originally developed by Facebook.
Resources related to OpenAPI
- Schema-first API Design is a great article for getting oriented with OpenAPI.
- Generating OpenAPI From Code
- Swagger integration libraries
- Swagger editor for editing OpenAPI spec.
Resources related to gRPC
- Protocol buffers is the structured data serialization mechanism used by gRPC.
- HTTP/2: Smarter at Scale is a useful article describing HTTP/2 which underlies gRPC.
- gRPC on HTTP/2: Engineering a Robust High Performance Protocol is another article useful for understanding gRPC.
- Slide deck discussing how Oracle and Azure manage APIs
- GraphQL is a data schema system, similar in some respects but more limited in scope. You might find it useful in conjunction with a full API specification framework.
- OpenCensus is an open framework for collecting and reporting instrumentation information.
Other API design resources
- Google’s API design guide is public, and describes Google’s API design principles, some of which are specific to Google, but most of which should apply broadly to APIs in general.
Thanks to Jeff who did a bunch of preliminary research and presented an earlier version of this talk at CodeBEAM, and to Graham for reviewing and providing suggestions. Thanks to Google for sponsoring my appearance at RubyConf this year.