Areas we cover

Authentication

Authentication controls who accesses your API and when. It is the core of any data protection and security strategy and a key part of your user experience. Authentication can range from simple email and password, to two-factor authentication, to linking with physical biometric devices.

Questions you may have for our experts

  • How do I set up OAuth2.0?
  • How do I prevent users from being able to see each other's data?
  • How can I offer users multiple ways to login?

AWS Cognito

Auth0

Azure Active Directory

Authentication

Business Logic

Caching

Security

Deployment

Documentation

Logging

Networking

Testing

Business Logic

Business logic is the core of any API. It is the code specific to your use case and your customers. The code that makes your company what is is. Business logic is also often the hardest to write as no one will have done it before.

Questions you may have for our experts

  • What API framework or language is best for my use case?
  • How can I scale my code to a million + users?
  • How do I write business logic to avoid redundant code?

Express

Django

Nest.js

Caching

One of the easiest ways to speed up response times for a read heavy API is with a cache. Caches save an API response for a limited period of time then return that to users instead of calling a database or IO intensive function again. They are not a cure-all, but for content-management systems, research databases, or similar they can be a massive help.

Questions you may have for our experts

  • Would a cache speed up my API?
  • How do I setup a cache?
  • When should I invalidate my cache?

Redis

Cloudflare

Cloudfront

Security

A paragraph about why authentication is great.

  • This is a question.
  • This is a question.
  • This is a question.

AWS WAF

AWS Cognito

AWS Cognito

Deployment

Deploying an API is no simple matter. There are a number of different deployment tools like Docker, Terraform, CloudFormation, etc. Each focuses on a particular bit of deployment from setting up cloud resources to isolating your micro-services.

Questions you may have for our experts

  • How do I dockerize my API?
  • What are the advantage and disadvantages of various public clouds (AWS/Azure/GCP/etc)?
  • How do I setup continuous deployment?

Terraform

Serverless

Cloudformation

Documentation

If you do not document your API, your users will not know how to use it. A simple idea, but difficult to implement when you have dozens of API methods with multiple response and request objects. Scalable documentation is built into APIs from the ground up and supported by strong business process in your development team.

Questions you may have for our experts

  • How do I separate out public documentation from internal documentation?
  • How do I ensure my developers always add documentation to new APIs?
  • Should I get a technical writer to write my documentation?

Swagger

Open API

AWS Cognito

Logging

When an error is reported, the first place any developer goes is the logs. They are critical for production-grade APIs, as bugs often happen in difficult to replicate scenarios. At scale, logging becomes a challenge in and of itself with gigabytes of raw data being generated constantly.

Questions you may have for our experts

  • How do I setup logging?
  • How do I gracefully archive logs?
  • How do I prevent personal data from appearing in logs?

Data Dog

Cloudwatch

Azure Application Insights

Networking

Networking is how we reach our API. As each API is different, there is a number of different ways to connect to an API. We can do it synchronously via REST and HTTPS or asyncronously via Websockets. If we want to do both, we can even go for GRPC.

Questions you may have for our experts

  • How do I add type checking?
  • How do I add HTTPS?
  • How do I connect to my API via GRPC?

GraphQL

Web Sockets

gRPC

Testing

You want to be confident your API works at scale. As APIs scale, manual testing becomes more and more unsustainable. If a new feature deploys, you need an automated way to test whether any previous features have been affected and that the new feature works as expected.

Questions you may have for our experts

  • How do I set up regression tests?
  • What percentage of unit tests should I aim for?
  • How do I get my developers to write more tests?

Selenium

Postman

Apigee