Why Your API Needs Machine-Readable Description
Having an API means providing the complete package to your customers so they can conveniently and effectively consume that API. This includes detailed, up-to-date documentation, SDKs in your customer’s favorite language, and any other tools to help get up to speed on your API. Of course, that implies that any changes you make to your API would require changes on all these levels. This maintenance, at some point, will make you wish you could somehow reduce the amount of overhead involved. As you might be guessing now, machine-readable descriptions can help you with all of these issues. And you can adopt them without giving up the human-friendly way you approach your API today.
API description formats — like Swagger (now known as Open API), RAML, API Blueprint, and WADL — have been around for a while now. They let you define your API in a standard way, understandable by machines and humans alike. Define the endpoints involved, the parameters they take and the kind of data/response they return, throw in some other relevant information and voila! You can get your hands dirty by automatically generating documentation, SDKs, test cases and whatnot. All this made possible by just a simple API description file.
If you want to future proof your API program, and achieve some efficiencies while you do it, you’ll want to dig into the benefits of machine-readable description files. With API experts working hard to enable search and discovery of APIs, these description files are part of an important, automated future.
6 Reasons You Need API Descriptions
1. Save Time and Money
Describe your API using one of the API description formats like APIMatic, Swagger or RAML, and get access to auto-generated documentation and SDKs. Stop writing code that can be written for you. If your API changes, reuse your existing API description to make the changes and re-generate your documentation and SDKs.
You’re probably familiar with how you’re doing this now: every time the API changes, you manually make the changes. This approach is not only resource-intensive, but also error-prone. Plus, you need to worry about doing a deploy dance to sync the SDK, docs, and API. If you miss one, you cause the end-users lots of trouble and inconvenience.
In a nutshell, the whole process will become less risky with machine-readable descriptions.
2. Paint a Clear Picture of Your API
The API description formats present a high level view of your API which is concise yet expressive enough to give you a basic idea of how your API works. This makes it human friendly. It is, however, also machine friendly as the formats make use of JSON, YAML, Markdown or XML, which can be easily consumed and utilized.
The clarity of a high level bigger picture of your API is also useful in analyzing how good or bad your API design is. The description clearly highlights the input parameters and the response fields. This contract-based mechanism helps identify any issues in the API, and go a long way into improving the API design.
3. Happy Stakeholders, Happy Developers and Happy Customers
When you define an API using the API description formats, the API description acts as a central document between the stakeholders, developers and even customers. They can collaborate and discuss the API design and resolve any issues. This collaborative API development can greatly increase satisfaction of the parties involved. Also, thanks to these formats, the customers get access to up-to-date SDKs in their favorite language bundled with detailed documentation, thus reducing the learning gap. What more could they want?
4. Open Standard
The formats present standard ways to define APIs. They aim to be no longer constrained by vendors or a particular language. One such example is Open API who are working towards standardizing the way RESTful interfaces are defined. This standard allows formats and applications to talk to each other and facilitate users with bundles of tools and frameworks. API description or discovery format files tend to use easily consumable formats like JSON, YAML, XML, and Markdown. An API description defined using PDF or other such formats may not be as easily accessible or consumable. Hence shifting to such open standards will help you in the long run.
5. Better management of increasing number of APIs
The growth of APIs in the API world is quite eminently increasing. There are over 16,000 APIs in the ProgrammableWeb API directory to date and the number is ever-increasing. This brings the challenge of managing APIs and providing ways for users to easily search, discover and acquire access to such APIs. This challenge can be tackled by machine-readable descriptions, as well.
As your own number of APIs increase, API discovery and automation become important. You’ll want a scalable approach like description files to guide the way.
6. Heart of many tools
Machine-readable descriptions form the core part of many API tools and frameworks. APIMatic itself is based on such a format. All our major products/ features including, but not limited to, Inter-format conversion, SDK generation, SDK documentation generation , Test Case generation all have one common format at its base.
Similarly, Swagger offers its own CodeGen which enables you to generate client SDKs and server stubs by utilizing just one Swagger API description file. Another such tool by Swagger is Swagger UI which renders automatically generated documentation from the API description file, useful for visual interaction. API Blueprint offers a tool Apiary that takes the Blueprint file and gives access to interactive documentation, API mock, test suites, validations, traffic inspector and collaboration. Similarly, tools are available with RAML for interactive documentation, testing, and more.
Open the Gateway to Automation
Machine readable descriptions unlock endless possibilities into the world of automation. These descriptions could either help define an API or provide metadata to help index APIs or collection of APIs.
Transformation between Standard API Formats
APIMatic offers Transformer that allows you to convert between various formats like RAML, Postman, Swagger, and API Blueprint. This conversion between API formats has been made possible because of their machine-readable characteristics. This transformation allows you to benefit from all the tools and other features associated with any format, not just one.
API Search and Discovery
What with thousands of APIs available, it can be cumbersome to find an API that caters to your needs. There are numerous directories available online, but this is not a good long-term solution for discovery of APIs. Google presents one of its service called Google APIs Discovery Service that exposes machine readable metadata about Google APIs. This facilitates discovery and interaction with Google APIs only. APIs.io is one open service designed to discover APIs on the web and utilizes a machine-readable discovery format “APIs.json”. This discovery format simply involves defining a metadata for APIs thus enabling indexing of APIs. Other search engines, directories, and API service providers also have access to that local index making all API resources within the domain discoverable. Such discovery services enabled via machine-readable formats facilitates API search and API selection to a large extent.
APIMatic, Postman and Apiary allows you to share and collaborate on API definitions with a team. At the heart of this lies the machine-readable API description file. SwaggerHub is another commercial product that allows teams to collaborate and coordinate the entire workflow of an API’s lifecycle.
With explosion in the number of available APIs, API aggregation is becoming a growing trend. It aims to provide APIs that bring together multiple APIs into a single interface e.g. APIs providing Messaging services could be brought under one giant Messaging service. In this way, this kind of categorizing helps build new products and new services and aims to reduce complexity. One such example is API2Cart which is an online service that provides unified interface for integration with multiple e-commerce platforms (support for over 30 shopping carts). API integration provider Zapier also launched a service that chained SaaS APIs into a complete business process. Another alternative to aggregation is to provide a standard interface that can be owned by many API providers. Machine-readable descriptions could and are playing a vital role in this.
Code Generation (server, client)
Client SDKs and Server side code can be easily generated from API description formats e.g. APIMatic, Swagger. APIMatic allows you to generate SDKs in 10 different languages along with various options to configure the code generation process. Similarly Swagger CodeGen also helps in generation of Client SDKs and Server stubs in various languages.
API and SDK Documentation
API documentation is a crucial part for an API. An API must come with detailed documentation so its end-users have no trouble using the API. An API description bridges this gap by letting you gain access to rich interactive documentation in no time. Go write a simple API description in Blueprint and place it on Apiary. You’ll see for yourselves what we meant. Not satisfied? Try generating documentation with Swagger UI or 3Scale ActiveDocs by providing a Swagger API description. So, yes, you have numerous options out there for API documentation. And the possibilities all start with a simple API description file.
API documentation isn’t the only document necessary for a good user-experience. To consume an API, a user would require a good SDK and that SDK must come with detailed documentation as well. Fear not, as APIMatic solves this issue as well, requiring minimal effort. Define or import your API into APIMatic, generate SDKs and get access to rich SDK documentation with illustrations and code snippets to get you quickly familiar with how the SDK works.
API Sandbox/ Testing
API testing can take many forms. Apiary offers a Mock Server that provides a quick way to prototype and test an API at the API design phase if you have a Blueprint machine-readable description at hand. When a request is sent via the Mock Server, it returns a corresponding response based on your definitions. You can also test your API using Production Server within Apiary. APIMatic lets you define Test Cases in your API description so when you generate an SDK the test cases in the particular language will also be automatically generated. You can use these test cases to test your API as well as your SDK. Postman is another crucial tool for testing your API service. It lets you construct requests quickly and write test suites for them as well.
Runscope, an API monitoring and testing service allows customers using machine-readable Swagger, Postman Collections or HAR to use their “Import Tests” feature that takes the API description format and creates tests to discover and debug API issues.
It is very important that your API service is up and available for all the customers at all times. If there is downtime, the issue must be quickly identified and fixed to avoid customer inconvenience. API Monitoring services like Runscope, APIScience, SmartBear aim to do just that. The three aspects to API monitoring are:
1. Performance: Responses are getting returned in the acceptable time range
2. Correctness: The responses are as expected
3. Availability: Service is accessible and responding
Machine-readable descriptions are making it possible to enable API monitoring for your API. Make use of APIMatic integration with Runscope to get Runscope-enabled SDKs. By using Runscope powered SDKs, API providers could inspect/debug all of the request and response data traveling back and forth from the clients using their SDKs.
Looking into the Future
The possibilities that machine-readable descriptions open up aren’t limited to those mentioned above. There is a lot of work going on in this area. APIMatic is now allowing you to directly deploy your SDKs to GitHub and let you enable Continuous Integration on your SDKs, etc. SwaggerHub lets you collaborate real-time with your team throughout the API lifecycle. Apiary Command line tools and Github Sync features also opens several opportunities to benefit from. The list goes on and on. APIs are becoming a vital part of our development lives and it will be wrong to shut our eyes to its importance. Machine-readable descriptions may not present a complete solution to your problem but a rightful choice of an API format will at least take you a long way towards your goal saving you lots of time, money and hard work.