Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

VersionDateDescription
0.92/8/2019Initial draft for review by SDP Tech Panel

Implementation Language and Framework

Language and framework choice will ultimately depend on the preferences and prior experience of team members. However some general guidance applies regardless:

  • Use a modern, preferably popular, Web API framework rather than rolling your own. While using a framework may entail additional work to learn how best to use it, the investment will pay off in overall reduced implementation time, ease of onboarding new engineers, and coverage by online communities such as Stack Overflow to help solve issues.
  • Ensure good automated integration test coverage of the API using an HTTP client library, don't rely on in-process unit tests. Routing of HTTP requests to the correct handler and deserialization and serialization of requests and responses are common sources of errors, integrations tests will help to catch both kinds of problems.

Some Popular Web API Frameworks

Web API frameworks exist for most popular programming languages and new ones appear regularly. The following is a non-exhaustive list of some popular Web API frameworks by programming language:

- Ruby: Sinatra, Rails
- Python: Flask, Django
- Java: JAX-RS (many implementations of standard API available), Spring, Restlet
- C#: ASP.NET Web API, ASP.NET Core MVC
- Go: Revel, Gin
- R: Plumber
- JavaScript: Express, Hapi

Monitoring

The ability to monitor services provides many benefits to both the service owner and clients of the service:

...