Have you ever wondered how many software developers there are in the United States? According to Don’t Quit Your Day Job, of the more than 167.3 million workers in America, about 4.1 million have roles that require some software development. This means that roughly 2.5% of the working population, or 1.28% of the total U.S. population, can claim to be software developers.
Of the 4.1 million software developers, how many have actually developed an API or worked on an API diagram? According to ProgrammableWeb, there are currently more than 21,100 publicly available APIs. That number seems to indicate that software developers with API experience represent a small, but growing, club.
In this article, we will briefly define what an API is and explain why it is important for you to create an API flow diagram.
What is an API?
If you work in the tech industry, you probably hear people talking about APIs on a daily basis. Chances are that you know that API stands for Application Programming Interface. However, unless you are one of the relatively few people who has worked hands-on developing APIs, it’s likely that you don’t really know what an API is.
Basically, an API is a set of routines, protocols, and tools developers use to build software applications and to specify how software components should interact. In simple terms, an API is a messenger that sends a request to a provider you want data from and then delivers the response back to you. Think of an API as an intermediary that allows two programs to talk to each other.
In web development, an API allows applications to “piggyback” on other services. For example, nearby restaurants are displayed on Google Maps when you use the Yelp app, and some video games let you chat with friends and invite other players to play via Facebook.
To make communication and data sharing possible, an API exposes limited parts of a program’s interface so a specific set of features can be accessed and used by other programs. The applications are able to share data and take actions on each other without requiring developers to share their entire code.
Why create an API diagram?
Developing an API can be very complicated, and you need to be very organized in order to develop one. You’ll need to determine what you want the API to be, what its function is, and what data it will need to grab. You will also want to get input from other team members who will be helping with the API development.
As you brainstorm, great ideas can come quickly. These ideas can leave just as quickly if you don’t record them. Think about and record things such as:
- What calls are you using for each API?
- What order do they go in?
- What will other developers need from your API to integrate?
- How can you make it as simple as possible for them to access?
- How will errors be handled?
Answer these questions as thoroughly as possible so you have a better idea of what you want to accomplish with the API and how you want to develop it. Avoid the temptation to start coding at this point because you are not done planning yet.
Keep in mind that not everybody on your team is as technical as you are. As you work with product managers and other stakeholders, consider making a visual representation of your ideas to help keep everybody on the same page. Visuals can make the information more accessible and easier to understand, plus they can encourage collaboration.
A visual flowchart is a good way to map out how you want your API to function. Lucidchart can help you create a web-based flowchart that is centrally located. Everybody involved with the project can easily access the document and from anywhere in the world as you collaborate and update in real time.
Use UML to model your API
After you have brainstormed, you may have a clear goal in mind. But the ideas you captured on a flowchart, or another visual aid, may not be enough. You should consider creating a visual model of your API so all involved can understand what happens when successful calls and responses are made, and when errors are returned.
A flowchart should be a high-level overview of what the API needs to accomplish. You can take that a step further by diagramming a model of how the software will actually function. Keeping it visual makes it easier for your team to understand and digest the information, and can save you time as you define system flow and model potential outcomes. Modeling may also help you find necessary calls or actions that you hadn’t thought of before.
Using Unified Modeling Language (UML) is a common and standard way to visualize complex software structures. With UML, you can design a model of your API before you ever write a line of code. Like a blueprint is drawn and used before the construction crew pours a foundation, UML acts as a blueprint for diagramming a model for your API development.
When you create UML diagrams, you can plot the relationship between objects, and define the attributes or code snippets that will accompany those objects. They also allow you to plan or expose behavioral functions of your software.
There are 14 different types of UML diagrams. As you plan your API model, you may need to use a collection of different UML diagram types to get a complete, overall picture of what your API is about.
The 14 diagram types are organized into two groups: structural diagrams and behavioral (or interaction) diagrams.
- Class diagram: This diagram represents the static structure of a system. It shows relationships between classes, objects, attributes, and operations.
- Component diagram: A component diagram displays the relationships of software components, including source code, run-time code, and executables.
- Deployment diagram: These diagrams represent the hardware and software resources in your system. A deployment diagram is useful for mapping how a software solution will be deployed across multiple machines and platforms.
- Object diagram: These show the relationship between objects using real-world examples. They display a representation of what a system looks like at any given time. These diagrams can be used to test class diagrams for accuracy.
- Package diagram: A package organizes elements into groups. A package diagram shows the dependencies among different packages.
- Profile diagram: These diagrams describe profiles that allow adaptation of the UML metamodel for different platforms and domains.
- Composite structure diagram: This diagram displays the internal structure of a class.
- Use case diagram: These diagrams model the functionality of a system and the actors who are involved in the system and its functionality. Actors are real-world examples such as customers, agents, and companies.
- Activity diagram: Activity diagrams are used to diagram the workflow from one activity to the next.
- State machine diagram: Similar to activity diagrams, state machine diagrams describe the behavior of objects that act differently according to their current state.
- Sequence diagram: Like the name implies, sequence diagrams map the sequence of when and how objects interact with each other.
- Communication diagram: These diagrams map the flow of messages passed between objects.
- Interaction overview diagram: This type of diagram shows the sequence of a collection of interaction diagrams.
- Timing diagram: These diagrams represent the behavior of objects within a specified time frame.
How can Lucidchart help?
Lucidchart offers several templates and complete shape libraries for structural and behavioral UML diagram types. (You can even generate UML sequence diagrams from text markup and UML class diagrams from your Bitbucket repo.) With real-time collaboration, you can easily share your UML diagrams so your team can make changes as necessary or simply refer to your API source code.
Sign up for a free Lucidchart account and get started.