Skip to content

Development Process

Guidance

  • API Teams should determine requirements.
  • API Teams should develop a design to handle those requirements.
  • API Teams should practice an iterative development cycle, which often means revisiting requirements and refining design as the development is completed.
  • API design should be a generic interface, and not specialized to a single consumer.
  • Development of an API should take place in the development environment.

Requirements

API development starts with understanding the requirements to know why this effort is worthwhile:

  • What functionality does the API provide?
  • What potential applications might be built with the API?
  • Who will the expected consumers be?
  • How will consumers interact with the interface?
  • Where will the API be hosted?
  • What is the expected load initially, and growth over time?

Next, the focus turns to the design of the API:

Design

Early in the design phase, set up a development environment to handle a simple request to validate the infrastructure functions as expected. The request should traverse all layers of your infrastructure, including:

  • authentication and authorization layer
  • cache layer (if any will exist)
  • endpoint:
    • controller
    • validation layer
    • business layer(s)
    • persistent data store(s)
    • response layer
      • return a well-formed response
  • logging integration

Iterative Development

  • Establish automated workflow processes to build, validate and deploy the code base as changes are completed.
  • Stub out the business behavior layers and any interactions with other services during early development, building the layers iteratively as designs materialize.

Automate validation

  • Validate the expected endpoint behavior and the request and response object structures as development is iterating.
  • Establish automated testing to validate behavior.