How to Build Applications With Fewer APIs Bundling
Tags: webdev, javascript, api, appwritehack
Published: 2022-11-29 17:34:07

As a developer, you have many decisions to make when building awesome software products. You have to choose a tech stack, define project scope and restraints, test and deployment strategies, decide on GitHub workflows, define coding style guides, etc. 

As important as these decisions are, you must also choose between building every functionality from scratch or leveraging Application Programming Interfaces (APIs) to lighten the load. Most people often choose the latter option because [building with existing solutions is better than re-inventing the wheel](https://dev.to/hackmamba/dont-re-invent-the-wheel-use-appwrite-3c4b).

Upon deciding to use APIs, you’ll encounter the challenge of finding the ideal APIs that meet product requirements and provide the functionalities you need. In cases where a single API doesn't meet your needs, you patch and combine multiple APIs to achieve the required result. Not only is this time-consuming, but it is also difficult to maintain and prone to errors and bugs in the long run, particularly when API versions change.

This article will explore factors to consider when choosing the right APIs. You will also learn how [Appwrite](https://appwrite.io/?utm_source=hackmamba&utm_medium=hackmamba-blog) solves the issue of sourcing for and bundling multiple APIs with the numerous APIs and points of integration they offer.


## Factors to Consider When Choosing the Right API Provider

These are some critical factors you should consider when choosing an API service.

- Ease of integration
- Variety of services
- Active developer community
- Documentation

Let’s study these factors in detail:


- **Ease of** **I****ntegration**

Time is invaluable when building projects and an API's ease of integration goes a long way to speed up or delay development. Beyond APIs, you may want to strongly consider third-party services that provide language-specific and environment-specific Software Development Kits (SDKs) for faster integration. 


- **Variety of** **S****ervices**

The more services an API platform provides, the better. One system with all the functionality you need, whether authentication, database, storage, geolocation, etc., is better than using multiple platforms for different functionalities. 
A one-system integration means you only need to learn one API platform, making dealing with bugs and version changes easier over time.


- **Active** **D****eveloper** **C****ommunity**

Since no man is an island, you should consider if the third-party APIs you want to choose has an [active developer community](https://dev.to/hackmamba/top-7-discord-servers-every-developer-should-join-59nd) that can assist when needed. Platforms like Stack Overflow are invaluable resources to developers, particularly when dealing with bugs and stubborn issues. You can also gain inspiration from other developers in the communities by observing how they build with and integrate the APIs. 


- **Documentation**

It won't matter how many APIs a provider has or the number of services available if they have poor documentation. Ensure that the documentation covers how the API works, explains the integration process, and has helpful code snippets and sample projects.
Be careful not to choose a provider with poorly written documentation that does not provide comprehensive information on these core points.


## The Better Way to Build

What if a platform had all the necessary APIs for everyday application development tasks, such as user management, file storage, email sending, authentication, and more? [Appwrite](https://appwrite.io/?utm_source=hackmamba&utm_medium=hackmamba-blog) is that platform, and it is a self-hosted Backend as a Service (BaaS) platform that provides developers with all the core APIs you need to build any application.

Appwrite provides ready-to-use APIs that make life easier for developers and end the hunt for reliable and efficient API services.


## Appwrite's API Offerings

Appwrite provides the following REST APIs:


- **Account API**

The [Account API](https://appwrite.io/docs/client/account) enables you to register and manage new user accounts. You can also use this service to update user information, retrieve user sessions across multiple devices, perform phone verification, and more.


- **Teams API**

The [Teams API](https://appwrite.io/docs/client/teams?sdk=web-default) allows you to manage and group users in your project. You can share read and write access to project resources like database documents or storage files. It gives you authorization control by enabling you to decide the access privileges of every user.


- **Database API**

You can use the [Database API](https://appwrite.io/docs/client/databases) to create a structured collection of documents to manage, filter, apply advanced queries, and set permissions. The Databases service returns data as structured JSON documents and you can have as many databases as you need.


- **Storage API**

Integrating with the Storage API allows you to add file management functionality to your applications, like uploading, viewing, downloading, and querying files. This API has a [preview endpoint](https://appwrite.io/docs/client/storage?sdk=web-default#storageGetFilePreview) which you can use to generate preview images for your files.


- **Functions API**

You can extend the functionality of Appwrite by creating custom cloud functions with the [Functions API](https://appwrite.io/docs/client/functions). Appwrite will trigger these functions when events like account creations, user logins, file uploads, etc., occur. The functions can be executed synchronously and asynchronously. Read more about the latest updates and [how you can use the Functions API](https://dev.to/appwrite/building-custom-cloud-functions-using-nodejs-with-appwrite-1bh1).


- **Localization API**

The [Locale API](https://appwrite.io/docs/client/locale?sdk=web-default) gives you information on your user's location, IP address, list of countries and continents names, phone codes, currencies, and more. You can then utilize this data to create a customized experience for your users, like welcoming or sending emails in different languages, displaying weather forecasts, or creating a currency converter.


- **Avatars API**

The [Avatars API](https://appwrite.io/docs/client/avatars?sdk=web-default) handles images, icons, and avatars in applications. You can use it to fetch country flags, display browser icons, show credit card logos, display name credentials as user profile icons, and more. 


- **Health API**

The [Health API](https://appwrite.io/docs/server/health) lets you check and monitor that your Appwrite server instance and its internal components are up and responsive.

Appwrite's documentation covers the client-side and server-side implementation of their APIs, with multiple code snippets and use cases available. 


## Appwrite's SDKs - A Richer Developer Experience

[Appwrite](https://appwrite.io/?utm_source=hackmamba&utm_medium=hackmamba-blog) is an incredible platform that has provided several APIs covering many use cases and development scenarios.
However, they didn't stop there. They decided to improve the developer experience by providing SDKs for faster integration. The SDKs are grouped into client and server SDKs and cover different platforms and programming languages.

The client SDKs are:

- Web SDK
- Flutter SDK
- Apple SDK
- Android SDK

The server SDKs are:

- Node 
- Deno
- PHP
- Python
- Ruby
- Dart
- Kotlin
- Swift

[Learn more about the SDKs](https://appwrite.io/docs/sdks).


## Why You Should Use Appwrite's APIs

These are some reasons why you should build with Appwrite's APIs:

- They are free and easy to use
- They are reliable, as [Appwrite has a very high uptime](https://status.appwrite.io/) 
- They have a low learning curve 
- Access to a large and supportive developer community for assistance
- There are APIs and SDKs for several programming languages and environments


## Conclusion

Appwrite is a developer-friendly platform that empowers web, mobile, and Flutter developers to build with ease. [Appwrite](https://appwrite.io/?utm_source=hackmamba&utm_medium=hackmamba-blog) ends the problems and inefficiencies of sourcing for and bundling different third-party APIs services by providing numerous API offerings and SDKs for seamless integration. 

With Appwrite, you can focus on building instead of spending time struggling with APIs.



## Resources
[Appwrite’s SDKs](https://appwrite.io/docs/sdks)
[Appwrite’s Documentation](https://appwrite.io/docs?utm_source=hackmamba&utm_medium=blog&utm_campaign=hackmamba)
[Appwrite’s Discord community](https://appwrite.io/discord)