In the second half of the semester we began working with the API code for the Worcester State food pantry project. As I worked with the API code, I never really took the time to gain a deeper understanding of how APIs work and I wanted to explore that as I wrap up my final assignments. I found this video explaining the basics of Web APIs to be very helpful and fill in gaps I had in my understanding of the topic.
API stands for application programming interface and web APIst provide mechanisms users can use and interact with where the workings of that mechanism are hidden to the user. The video gave a great example of a way to visualize how APIs work: when you enter an elevator you have a set of buttons that take you where you want to go, but you don’t see or know exactly how it does it. Web APIs are the medium between the client (user) and the server (the web servers). HTTP protocol (HyperText Transfer Protocol) is used to transfer data through the web. Every link on your web browser is in HTTP form with a path and parameters or query – for example, I am editing this in google docs and my browser is in the form of docs.google.com/document/d/encryption/edit. Servers offer responses in various different codes such as 200 (success), 400 (client error), or 500 (server error). The information that is sent over can be in two different formats: XML or JSON. They have different formats but the same function of transferring data.
JSON is the standard for APIs because most programs are using javascript and it provides easy integration. Many modern APIs use the REST architecture (Representational State). REST APIs use an end point just like the HTTP path and the method, which defines what kind of action is being performed (GET, POST, DELETE). Headers contain information about the type of request and the body is the JSON object. API requests have four parts: The end point (the path), the method (which HTP call is being made), the header which contains additional information, and the body (the message or data that is being sent).
This video did not mention YAML files and that was part of the API system I was still struggling to understand, and came across a great breakdown:
https://idratherbewriting.com/learnapidoc/pubapis_yaml.html
The food pantry API code is made up of many different YAML files. YAML is similar to mark up languages but it removes all the brackets and other syntax making it easier and faster to read. YAML and JSON are related, making the two easy to integrate. YAML file syntax uses indentation to denote different levels and each different level is an object with dashes indicating variables. JSON uses quotation marks and brackets whereas YAML uses dashes and semicolons.
From the blog CS@Worcester – Site Title by lenagviaz and used with permission of the author. All other rights reserved by the author.