These definitions may have different meanings depending upon the context in which you work. They are also used by specific teams, so don’t consider this definitive. These are the terms I have used to explain them to myself, so I can better understand them and how they work. These terms help me to better understand them and use them for testing. They may also help you in your testing journey.
REST
REST stands for REpresentation State Transfer. This protocol is based upon the dissertation of Roy Fielding. There is much to this. But in a nutshell, a HTMLful API is one which consistently applies actions (verbs), like GET, Post, and PUT to resources (nouns), which are often URLs that may have certain parameters. Тow offers a new addon to their addon shop that allows RESTful Client to run tests. It allows you to send HTTP/S requests via GET, POST and DELETE methods. You can view the documentation and source code.
Hypermedia
This is a topic that will be debated (surprise), but some people believe an API can only be truly RESTful if it employs a hypermedia approach. Hypermedia is when the server informs you of available resources. Each request to the server should inform you of the other resources and actions available on objects related to your request. Does that sound confusing? It’s not. This page is where you came from. There are many links that will allow you to navigate to other parts of the internet. This is all hypermedia does in an API. It will also tell you about other links (endpoints), and actions you can use within the API.
HATEOAS
Let’s talk about Hypermedia. HATEOAS Hypermedia as the Engine Of Application State stands for Hypermedia making people argue about pronunciation Hypermedia is used by your REST API.
GraphQL
It’s new! It’s exciting! It will rule the world! Although we love to be excited about tech news, GraphQL just another way to specify an API. It’s a query language that optimizes network API calls. This can be extremely helpful for applications with high performance requirements. However, it is more rigid and complex than REST.
Idempotent
Idempotent refers to the fact that you receive the same result every time you make a call. To help you remember, I will give you a silly example. Consider putting snow tires on your car. You now have a car equipped with snow tires. You can repeat the request to get the exact same result. A car equipped with snow tires. This would be an API call called a PUT. It doesn’t matter how many times you call it (using the same parameters), the result should always be the same.
Safety
A GET call, which is idempotent in that it returns the same result each time it’s executed, has an additional element called safety. Safety simply means that the command will not change. Let’s try a silly example. Picture a bookshelf. To read the title on a book’s spine, you tilt your head to the side. You can’t change anything and you won’t be able to. This is an example for a safe call.
Nouns and Verbs
This is not an English class. However, we do talk sometimes about verbs and nouns in APIs. Verbs refer to the actions an API can perform (like GET/POST/PUT, DELETE), while nouns are the resources that the API uses (resources typically represented by URL endpoints).
Services (microservices)
Buzzword time. What is a Micro-Service? It is a very small or micro-sized service (see??). A service is simply something that does things and lets you tell it how (usually via APIs). It doesn’t have be difficult! Let’s look at an example to help you understand the concept better. Because you’re so cool, you want to make a meme. But photo editing is too boring for you. You could have a command that said “Generate a meme for me with these words” if you had the right information. It will give you some commands. You give it some commands. It will do something and produce an output based on what you have given.
Micro-services are an architectural pattern which tries to create a variety of services that each can do a specific task. These services can then communicate with each other using the defined APIs. Each service can only perform a small number of tasks. You might divide a customer-facing service into several micro-services, each of which can do a specific part of the overall task.
All good things have to come to an end, including this
There are many other terms that API Testing can be used to describe. Let me know if you find any confusing and I will add them to the list.