API Product Managers vs. API Developers
Tags: api, tooling, management
Published: 2022-12-01 23:12:32

Terminology that will be used in the article:
* API Consumer - end user(s) interacting with an API
* API Resource - an entity that has a URI where it can be manipulated through HTTP requests. Defined by the endpoint + path, e.g. https://API-SERVER/v1/book
* API Operation - a combination of a resource and HTTP method, e.g., GET https://API-SERVER/v1/book/1

**API Product managers are usually responsible for the following:**

- Defining the technical and business details of API (API contract) 
- API strategy, follow and know the API lifecycle, and bring the necessary reliability, observability, and governance to your operations.
- Responsible for the creation initial OAS document
- Defining API roadmap
- Managing feature requests
- Organizing EFT & GA releases

**API developers and architects are usually responsible for the following:**

- Organizing the API implementation
- Refining the API design
- Reviewing updates of the API contract
- Following security standards



## What instrument does the API product manager have.
First, if you are a product manager for API, you should understand that your API Consumers/clients are developers and businesses, of Course. 

Important tools:

- Conjoint Analysis
- Interview
- Analytics

[Apimatic](https://www.apimatic.io/) complete set of DX components such as autogenerated SDKs, API portal, API docs, live code samples

[An Open List of REST API Standards](https://github.com/masteringapi/rest-api-standards) 

API development tool: [Postman](https://www.postman.com/), [Eoapi](https://github.com/eolinker/eoapi)

Whether you work with an open-source product or a big enterprise solution, be sure you can find internal/external (or northbound/southbound) API to interact with specific solutions. As for now, 90% of developers use external APIs.

## What instruments do API developers and API architects have.
[OpenAPI Generator](https://github.com/OpenAPITools/openapi-generator ) allows the generation of API client libraries (SDK generation), server stubs, documentation, and configuration automatically given an OpenAPI Spec (v2, v3)


[API Insights](https://github.com/cisco-developer/api-insights) - manage versioned API specifications (Swagger 2.0/OpenAPI Spec 3.x) for services. It also does static analysis of API spec files.

[RESTful API Modeling Language (RAML)](https://raml.org)  


[JSON visualizer](https://jsoncrack.com/editor) 
[JSON validator](https://jsonlint.com/)
[YAML validator](https://codebeautify.org/yaml-validator/) 
[Collaborative Design & Documentation for APIs](https://stoplight.io/) 

[Cherrybomb](https://github.com/blst-security/cherrybomb) is a CLI tool that helps you avoid undefined user behavior by auditing your API specifications, validating them, and running API security tests.

[API development tool](https://apisecurity.io/tools/audit/)

[Workato API Platform](https://www.workato.com/platform#enterprise_workflow_automation) 
[MuleSoft](https://www.mulesoft.com/)- API management, monitoring.


![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/5ghuwtpqtj0acky80p0o.png)

**The Biggest cloud provider has their solutions and tools for API:**

- [Apigee API Management](https://cloud.google.com/apigee) 
- [Amazon API Gateway](https://aws.amazon.com/api-gateway/) 
- [Azure API Management](https://azure.microsoft.com/en-us/products/api-management/) 


**URI, Status codes**
Refer to the API design; your dev team should manage the status codes.
The product manager should define what useful information can be added besides the HTTP Status Messages Description that can be extended by API PM (HTTP/1.1 406 Not Acceptable). 
REST API URI suggestions:
Use a dash to improve the readability 
The lowercase letter is a good choice 
Avoid odd pluralization (network/networks image/images)



**API limitation**
API or API QPS (Queries per second) can be limited by the number of API calls. Or after API Consumer buys the product and purchases a subscription, the API Consumer should not pay extra and can use this API without API operation limitation. API product managers need to define the difference between freemium and Pro/paid API versions for other products.
In limitation, we expect that Business models will be defined with the customer.


**Developer support** 
As for me, it is a must to have. First, it helps your API Consumer solve problems connected with the API and services you provide. Second, this also gives you valuable data to analyze what you can improve and which service capabilities you can enhance or retire old APIs.

**Developer documentation**
Part of the project that needs to be delivered. Auto-generated docs sometimes need to be clarified and fully documented. API PM, developers, and tech writers must add operation descriptions, input/output parameters, and structure for all success and failure responses. Your API will be used using various SDK programming languages. At the familiarization and testing stage, the API Consumer will use specific API operations to solve the problem. Therefore, it is essential to write clear documentation, and besides that, the URI can tell a lot about what the API method does precisely. 

**Code samples and learning materials**
These resources are essential for the API Consumer to quickly prototype and bootstrap projects and learn how to utilize your API. Besides, it's good to have learning materials and tutorials to help educate API users. Finally, furnish samples of queries and replies to enhance the understanding and usability for developers.
Need to be detected and defined by API PM and developers

**Tests environments**
Need to be defined by API PM, detect minimum resources and scope required by the clients. And then, the Product manager monitors usage and issues connected with the test environment, collecting data to add new features to the test env. 
API Developer design and deploy test env, maintain tech environment, and upgrade related hardware and software

**Changelog**
All changes need to be tracked and available for the changes. If you have different versions and migrate from one to another /v0 to /v1, you need to give us time for our customer to change it. I saw different samples when this transfer period was six months and up to 1 year.


**Conclusion**
Of Course, product and dev teams need to work closely with each other to create the best products. From the users and business side, developers and product managers are on one side of the wall, so no matter if you are an API developer or API, Product manager. Your main goal is to do your best, collaborate and deliver the best product.