Posted on Leave a comment

Designing, Building, and Specifying APIs

Designing, Building, and Specifying APIs

The technical author has many options when designing and building APIs. While building a service with modern technologies and frameworks can be incredibly fast, creating an enduring approach that stands the test of time requires careful thought and deliberation. In this article, we will examine REST and RPC models that are frequently used in API implementations.

One key understanding in this journey will be the role of standards in steering design decisions and evading potential compatibility issues. We’ll also examine OpenAPI Specifications, understanding their practical applications for technical teams and the crucial versioning aspect.

RPC-based interactions are generally specified using a schema; to compare and contrast with a REST approach, we will explore gRPC. With REST and gRPC in mind, we will look at the different factors to consider in model exchanges. We will also consider whether providing a REST and RPC API in the same service is practical.

Representation State Transfer (REST) is a set of architectural conditions commonly applied using HTTP as the underlying transport protocol. From a practical perspective, to be considered RESTful, your API must ensure that:

  • A producer-to-consumer interaction is modeled where the producer models resources the consumer can interact with.
  • Requests from producer to consumer are stateless, meaning the producer doesn’t cache details of a previous request. To build up a chain of requests on a given resource, the consumer must send any required information to the producer for processing.
  • Requests are cachable, meaning the producer can provide hints to the consumer where appropriate. In HTTP, this is often provided in the information contained in the header.
  • A uniform interface is conveyed to the consumer. You will explore the use of verbs, resources, and other patterns shortly.
  • It is a layered system, abstracting away the complexity of systems sitting behind the REST interface. For example, consumers should not know or care if they interact with a database or other services.

 

Introduction to REST and HTTP by Example

Let’s see an example of REST over HTTP. The following exchange is a GET request, representing the method or verb. A verb such as GET describes the action to take on a particular resource; in this example, we consider the attendees resource. An Accept header is passed to define the type of content the consumer would like to retrieve. REST defines the notion of a representation in the body and allows for representation metadata to be defined in the headers.

In the example below, we represent a request above the — separator and a response below:

GET http://mastering-api.com/attendees

Accept: application/json

200 OK

Content-Type: application/json

{

    “displayName”: “Jim”,

    “id”: 1

}

Posted on Leave a comment

How to Write API Documentation in 5 Simple Steps

How to Write API Documentation in 5 Simple Steps

Written By: Josh Fechter

This article has been kindly reproduced by Technical Writer HQ

You tap on your smartphone’s weather app, and a few seconds later, you see the latest weather updates for your location. The smartphone weather app does not store the weather data, nor does your smartphone. So, where did the weather data come from?

The ride-hailing apps you use do not have real-time location tracking systems. But whenever you enter a destination on Uber or Lyft, a few seconds later, you see your current location, the destination, and a route, along with estimates of arrival times. From where did your ride-hailing app get this data?

So, where does the data come from?

The answer to this all-important question is that your smartphone apps access data through APIs.

Your weather app uses an API to get weather data from one of the many online weather services.

Your ride-hailing app uses Google Maps API (or a similar service) to access real-time tracking information.

APIs are software developed for software developers. Software developers need high-quality API documentation to use APIs and extract the maximum benefit.

This article will go over the best way to write API documentation. 

Let’s get right into it. 

What are the Types of API Documentation?

There are three types of API documentation: reference, tutorial, and conceptual.

Reference

Reference documentation provides information about the structure, parameters, and return values for each function or method in an API. This is the most important type of API documentation as developers spend most of their time on reference documentation.

Tutorials

Tutorials provide step-by-step guides for using APIs to accomplish specific tasks. Tutorials are helpful if your users want to learn about specific use cases. Tutorials contain detailed instructions on the use of specific function calls and parameters.

Conceptual

In contrast to tutorials that provide specifics, conceptual documentation provides higher-level information, such as how to use APIs to build applications and integrate APIs into a single application.

How to Write API Documentation: A Step-by-Step Guide 

Writing great API documentation can be hard, but you can do it well if you follow a process based on best practices. A good understanding of APIs also helps. It’s ideal if you have some knowledge of programming languages, such as PHP, Java, and Python, along with some technical writing experience. 

Furthermore, good communication skills are essential for effective coordination between team members and developers.

You can check out API documentation from major companies, such as Microsoft, to better understand the format and content. 

To write great API documentation, use templates, use the right API documentation tools, and follow a step-by-step process. 

When you’ve set yourself up with the first two, you can start following the steps described below. 

Make a Plan for Your API Documentation

The first and foremost step is to plan out your API documentation process. If you don’t develop a complete plan and set up a schedule, there’s a good chance that you’ll either miss out on key points or miss your deadlines. 

Before you start working on the API documentation, you need to understand your audience well. Understanding your audience and their needs are crucial to planning documentation. That’s because it will help you decide on your documentation’s structure, language, and overall design. 

Furthermore, it is best to learn about the API itself, whether it’s a web API, payment API, or an API with a different function. You will also have to consider what API documentation tools you will use, such as Postman, SwaggerHub, or apiDoc. You can also consider using online sources and tutorials from sites like GitHub. 

To ensure the API works for people who use the API documentation, you’ll have to look at the API blueprint, API design, and API key. 

Understanding these essential concepts and developing API documentation with the user experience in mind will help you plan well. 

Include Critical Sections 

Each API document needs to have some fundamental sections. These sections improve the document’s usability and improve the developer experience. 

The following are some of the important sections for API documentation. 

How to write API documentation

  • Examples: It’s no wonder that examples are the most important thing developers look for in API documentation. After all, developers need to use the API; examples show them how to do that. Examples are included as pieces of code. You can also include a mock API for developers to test and use by making real calls. You can share the mock APIs via a URL or on GitHub.
  • Product overview: The product overview is an essential section as it is relevant for technical users and for decision-makers who can use the information in this section to decide whether or not to buy the API. Documentation often tends to focus on technical details, and the overall business goals and purpose of the API are ignored.
    • The overview section includes what you can do with the product, the market needs or pain points it solves, some examples of its use, requirements to use it, who the product or other features are for, and other introductory information.
  • Getting Started Guide: API docs are complex technical documents that some users find overwhelming. A getting started section can make it easier for inexperienced and experienced users to navigate the documentation and find what they are looking for. This section helps to show a user how to use a framework, API, or some other system to get the simplest and easiest result, so they get an end-to-end sense of how it works.
  • Authentication: Authentication and authorization are essential API functions: APIs don’t work without them. Since developers can’t use the API without knowledge of API keys, this section needs to appear right after the getting started section.In this section, you need to explain necessary information such as how to get API keys, how to authenticate requests, error messages related to invalid authentication, sensitivity around authentication information, and token expiration times.
    • You don’t need to explain the authentication in detail to outside users. This is because keeping the internal details of your authentication process confidential prevents hackers from obtaining unauthorized access. It is also important to explain the use of public and private keys: explain where each key is used, and emphasize that private keys are confidential (not shared). Include related information in this section if you use different license tiers to provide different access to the API calls.
  • Status codes and error messages: Everyone is bound to get some error messages when using an API. Therefore, the user must understand each error message, its reason, and potential solutions.This section is helpful in first-use cases where someone is using an API for the first time.It’s a good idea to list status codes and error messages on a separate page as it allows you to describe each code in detail without crowding the other documentation. You will need to ask the API developers for a list of all the status codes and error messages for your API. Status codes and error messages can be helpful when it comes to troubleshooting.
  • HTTP requests: Including relevant information about web requests in your API documentation is essential. This is because even though developers know how to send web requests in their preferred programming languages, they might not be familiar with the language used to create requests in the API.

Stay Consistent and Avoid Jargon 

When you’ve figured out the sections and start writing the API document, you need to ensure you’re consistent. That means you use the same terminology, formatting, and reference points throughout the document. 

Remember that all users of API docs don’t have experience with APIs. So it’s a good idea to write for the entry-level. That way, your documentation will benefit users with different levels of experience.

Make sure that all content is uniform in all aspects, including formatting and language. The best way to ensure consistency is to proofread each section after writing it and then proofread the entire document once complete. If you notice any areas that are difficult to understand and read, either edit or remove them altogether. 

Furthermore, it’s important to avoid jargon. It’s best to use standard terminology so that everyone can understand the terms. If you can, avoid using technical jargon unless it is necessary. 

You’re already doing a great job with technical writing if you can convert all technical jargon into understandable words and sentences. The idea is to write something that resonates with the user and helps them understand complex aspects. 

It’s best not to assume that everyone who reads the API document understands all about APIs. Therefore, keep the language consistent and straightforward so that even first-time users can grasp all the concepts. 

Use Interactive Examples 

When you write a block of text, there’s a good chance people will avoid reading all of it. You have to keep your readers engaged; the best way to do that is by including interactive code samples and demos. 

One way of teaching and learning concepts is in isolation. However, this method is an ineffective method of teaching and learning. One of the significant benefits of using examples is that they provide a context that links multiple concepts and enhances learning. Examples based on real-world API applications further enhance learning by bringing in variables that API developers will have to deal with daily.

Interactive examples will help comprehension of the API documentation because the reader will be applying what they’re reading in real-time. It will also reduce the learning curve of the API in the long run. Furthermore, it can help users understand any new features that pop out. 

You can also include various helpful resources such as SDKs and libraries in the API documentation. The extra resources and information will help the users understand the API better and use it in an effective manner. 

Maintain the API Documentation 

While good documentation is crucial for API success, maintaining API docs is also critical. 

It’s crucial to ensure all your documents remain accurate and up-to-date. Obsolete API documentation will lead to frustrated users, reduced retention, and increased support costs as developers turn to your teams again and again for help.

It’s not hard to maintain your API documentation; you can do the following to make sure it stays updated: 

  • If any new features have been added to the API, ensure all relevant information appears in the documents. A good practice is to release updated API documentation with each new API release. 
  • Update descriptions for any features that are added or removed. If a feature is removed, mention it in the document, along with the reasoning behind the removal. 
  • As a writer, feedback is important to improve the quality of your API documentation. You may have missed out on some things or were unclear; therefore, it’s best to use the feedback to make continuous improvements. 

API Documentation Best Practices

Here are some best practices that will improve the developer experience for your API documentation.

Use Simple Language

It is easy to create API documentation with document generation tools. However, such auto-generated documentation lacks good explanations that only a good developer or technical writer can provide.

Therefore, create API documentation written in simple language, making it easy for developers to use and benefit from.

Make it Accurate, Compact, and Easy to Find

API docs that are disorganized, inaccurate, too long, or difficult to locate will not be used. So make API docs easy to find and easy to use.

Make it Available for Everyone

Many customers prefer to understand what your API does before buying it. Your API documentation can help them decide.

Limiting access to registered users is terrible marketing and prevents potential clients from learning about your products and services.

API Documentation Tools

Using an API documentation tool can provide many benefits. Tools help to reduce the time it takes for developers and technical writers to write and maintain API documentation by automating or simplifying some tasks.

Some of the features that API documentation tools support include automatic updates to documentation based on changes to source code, version control, collaboration, and customization options.

Here are some common tools used for writing API docs.

Postman

Postman is an API platform for developers to design, build, test, and iterate their APIs.

You can use Postman’s API documentation tool to generate machine-readable documentation for your API and keep it up to date.

Postman pulls sample requests, headers, code snippets, and more to populate the documentation with dynamic examples and machine-readable instructions. It also updates documentation when you make changes to your collection.

Swaggerhub

SwaggerHub is an integrated API design and documentation platform, built for teams to drive consistency and discipline across the API development workflow.

Supported features include smart error feedback and syntax auto-completion, embedded API design rules that reinforce standards in real-time, and real-time commenting and issue tracking.

Redocly

Redocly is an open-source tool that generates API documentation from OpenAPI specifications.

It supports version control, collaboration, user roles, try-it authentication, and other security features. A unique feature is preview functionality: you can preview every branch or pull request to ensure your changes are reviewed and discussed before pushing to production.

Who Writes API Documentation?

Writing API documentation requires technical skills and an understanding of how APIs work. It is a collaborative process between developers, technical writers, and other stakeholders.

Developers

API docs are written by the people with the best understanding of the APIs, i.e., software developers. Even though developers have the best technical knowledge of APIs, they might not have the best writing skills or give the highest priority to writing documentation.

This is where technical writers come in.

Technical Writers

The job of technical writers is to translate complex technical subject matter into easy-to-understand explanations.

Even though programming experience is not essential, technical writers with programming experience write the best API documentation. Technical writers collaborate with developers and other stakeholders to create API documentation.

Other Stakeholders

Sometimes organizations don’t have dedicated technical writers, and the responsibility for writing API documentation falls on product owners, content writers, or even the startup founder. The essential skills required for the role include writing and technical knowledge.

Wrap Up 

‘API economy’ is the term used to denote the new way of distributing software and data that relies on APIs. And the size of the API economy keeps growing:

In other words, APIs make the world go round.

Whether a software developer or technical writer, knowing how to create excellent API documentation will help you in your job and career. Following the steps outlined in this article can help you create great API documentation and guide others.

Leave a Reply