Understanding APIs and Which is Best for Scalability

Jennifer Trower

Jennifer Trower

 | 19 September 2022

Back to All Articles

Developers use APIs to build customized integrations between applications to make data gathering easier, faster, and more efficient. Knowing the right type of API to use helps with the time it takes to create the code as well as the efficiency it will provide you or the consumer who uses the software.

What is an API?

API is an acronym for application programming interface. An API lists numerous operations that developers can utilize and descriptions of what they can do.

What is an API Used for?

APIs are beneficial to bring applications together to communicate in order to perform functions built around sharing data and executing pre-defined processes. Using APIs reduces the amount of coding a developer needs to create, and provides consistency with other used applications with the same platform.

What are the Different Types of APIs?

There are different ways to categorize types of APIs. So, asking what are the different types of APIs leaves the answer wide open.

Types of APIs by Scope of Use

There are four main types of APIs.

  1. Open APIs (Public APIs) – are APIs that are available to all developers and other users with minimal restrictions. They focus on external users to access data or services.
  2. Partner APIs – are not available publicly and require specific entitlements to access them.
  3. Internal APIs (Private APIs) – are hidden from public users and only exposed by internal systems. They are not meant for use outside a company, but rather for use across different internal development teams for better productivity and reuse of services.
  4. Composite APIs – combine multiple data or service APIs. They allow developers to access several endpoints in one call.

Types of API Architectures

Let’s not forget the 3 main types of API architectures that are commonly known.

  1. REST, aka RESTful API – (Representational State Transfer), is a collection of guidelines for lightweight, scalable web APIs. Not a protocol.
  2. SOAP – (Simple Object Access Protocol) is a stricter protocol used for more secure APIs.
  3. RPC – (Remote Procedure Call) is a protocol for invoking processes that can be written with XML or JSON; the simplest form of API interaction which executes procedures and commands with ease.

GraphQL API

Now, let's talk about GraphQL. This is an open-source data query and manipulation language for APIs and server-side runtime that prioritizes giving clients the exact data they request and nothing more. Facebook designed GraphQL to help them solve the issues they were experiencing with their platform, and developers quickly embraced it due to its power and flexibility.

When GraphQL describes itself as a ‘query language for an API’, it describes a format for constructing API queries to get back only the data you want. The GraphQL standard itself doesn’t describe how searches and filters are constructed, but it does describe what a GraphQL query looks like, and this means it’s easy to continue to build onto your API cleanly and consistently.

When speaking of scalability and which API is best practice within your code, GraphQL is considered best by developers, but comes with a more difficult learning curve. Alternatively, REST API provides more scalability for your coding needs over the SOAP API, if you prefer to code with one of these APIs.

Use Cases

When it comes to using APIs to assist with an Internet Service Provider (ISP), there are many ways they are used to improve the work. Getting the most information as quickly as possible is always necessary when providing essential services to consumers.

RESTful API Use Case

With a REST API, you'd use the CRUD methods (Create, Read, Update, Delete). POST, GET, PATCH, and DELETE. This standard and REST API setup has been around since the early 2000s, and has been very useful when building your own tools and setting up integrations. For example, below is a call to GET an account and GET the address. This requires two calls, which you'll see within GraphQL can be built in one query instead of two.

curl -XGET 'https://example.domain.com/api/accounts/1'

curl -XGET 'https://example.domain.com/api/accounts/1/addresses'

This required two POST calls, which takes up bandwidth and can become complex in nature if you need to make multiple calls.

GraphQL Use Case

GraphQL is the next API usage. Use 1 query/mutation without the need to use multiple mutations or queries to get information. You'll always use the POST method to the API endpoint with the body as either a query or a mutation. Below, is an example of getting an account with an address using GraphQL.

curl -XPOST 'https://example.domain.com/api/graphql' -d 'query accountAddress {

accounts(id:1), {

entities {

id

name

addresses {

entities {

line1,

city,

country,

zip

}

}

}

}

}'

This would return the account information that has the id: 1 with the addresses attached to it. This prevents you from pulling the account and then pulling the address using the account id to get the whole picture.

These use cases allow you ease when searching for customer information within the system and gathers the information you’re looking for with haste.

What API Does Sonar Use?

Sonar uses GraphQL as its API. Providing a powerful, flexible, and performant API was the highest priority when developing the newest version of Sonar. Our CEO, Simon Westlake, details his thoughts on why he used this powerful API and shows you some of the wonderful attributes it allows within a 4 part series of blogs, starting with The New Sonar API.