API Cloud

UX / UI design, Product design, Product strategy
Project Overview
I started the API Cloud project with the goal of improving the API design and development industry. I believe that there is room for better API tools in the market, despite the many functional options available.

Here are the core principles that guide my project:
- APIs are not just for developers, so API tools should be accessible to everyone.
- High-quality design is essential for developers working with APIs.
- No single tool can cover all aspects of API development, so specialized tools are necessary.
- Custom formats cannot keep up with industry standards, so API tooling should work with accepted standards.
- API tools should be built for easy integration and customization.
- API tools should support developers' workflows, not force them to change their ways.
- API tools should be accessible where developers work, not just in a select cloud.
My Contributions
I've put a lot of thought into creating API tools that developers will enjoy using, not just because they're functional, but also because they want to use them. I came up with a plan for a new API product line, and created a set of apps to support each step of the API development process. I also developed the core libraries needed to build these apps. Unfortunately, I don't have the resources to start the project properly. If you are able to offer support, I would greatly appreciate hearing from you.
Contact me if you can and want to support this project: pawel.psztyc@gmail.com

The design process

The design process for this project spans several years and includes user research and a futuristic vision of API design and development of the future.
As an author of another developer tool for API testing, the Advanced REST Client, I spent years talking to API developers. I was listening to the community's voice that would suggest the best approach to API development. I remember very well a call I had with an API developer who was describing their API development process. It all went down to a single statement that they need a clear definition of standards that would help them build consistent and compliant with the organization standards APIs. It takes me to another product I worked on at MuleSoft - the Domain Modeling Initiative. It is described better in another article on my portfolio page. Still, we research how we can build consistent standards for API development through data modeling.
These two events prompted me to design a new experience for API design and development. Below I explain each part of the ecosystem.

API Cloud - a user workspace

When you begin your journey with the API Cloud, you'll enter a 360 view of your team's work. The platform lets you organize your work however you please with a filesystem-like structure. Each file represents a user's completed work, with one file defining an API and another containing HTTP queries for that API. The suite includes different types of work that correspond to various stages of API development.

This design is an improvement over traditional API platforms that have multiple apps, each with its own backend for storing data. Users must learn and understand each app before they can effectively use the platform. Feedback from product forums, often open to the public, has revealed that this approach is less efficient, especially for newer users. By placing user-generated data in a single location that the user can structure as they choose, we can create a more user-friendly design.

API Cloud - file browser

API Client - API consumption in a library

As the creator of Advanced REST Client, I've spent years exploring various designs and perspectives on how developers can best use an API. While Postman and Swagger are just a few of the many available tools, I discovered that most of them follow the basic layout that I created in 2012 for the original version of my REST client. This consists of an HTTP method and URL line, followed by a tabbed view of specialized editors for headers, query parameters, and body. Nowadays, there are other editors for assertions, authorization, and HTTP engine configuration.

I've examined many of the tools on the market for their UI composition, user workflows, and functional layers. Some apps, like Postman, are swiss-army-knife applications that handle everything in a single frame. Others take a more platform-based approach, separating these functions into different specialized apps. However, my project principle dictates that API development cannot rely on a single tool, as different aspects of API development require various specialized tools. Therefore, the API Cloud apps focus on developer workflows rather than single-app functionality.

The API Client is a tool that helps developers create a library of HTTP calls, which allows them to structure their work with an API. This approach works for both API developers who code the API and API consumers who can use these libraries to learn how to consume the API. It supplements the API specification that describes the API structure.

HTTP Client - Header editor

Schema as the main actor

In the API Cloud ecosystem, schemas are essential building blocks that define data shapes for API design and consumption. They are created by a specialized application and differ from traditional data modeling. API Client schemas include attributes like indexes, keys, and read/write-only fields and can be used in workflows by other applications.

I designed this system to support new use cases like Protocol Buffers, which has been requested by Advanced REST Client users. By defining abstract data shapes with API targeting metadata, the ecosystem can translate them into specific formats such as JSON, XML, or Protocol Buffers.

HTTP Client - Body editor

API testing - no code, ever

For maximum scalability, no-code solutions are the way to go. To create a flexible interface without writing any code, I carefully analyzed various approaches to API testing and devised a UI that would suit most use cases. After studying popular tools and libraries, I came up with a simple yet powerful interface for defining HTTP tests.

The tests are defined using a syntax that's already familiar to many developers around the world - the Assert library. This library is commonly used for conducting unit tests of code. Each block of the test represents a step in the flow, starting with the data (response header, status code, and body) and proceeding through various transformations and assertions. This means the user can easily extract any information from the HTTP response and perform assertions in a way that's already familiar to them.

HTTP Client - Assertions designer

More to come

Within the ecosystem, there are various applications available, including those for schema design, API monitoring, and innovative API definition. However, these applications require significant time and effort to design and develop, making it challenging for a single person to undertake such a large project alone. As a result, I am seeking support from organizations that share my vision and have the necessary resources to collaborate with me in bringing it to fruition. If you are interested in helping, please do not hesitate to contact me.