What is API?

API (Application Programming Interface) is a set of rules that allow programs to communicate with each other. The easiest way to think about an API is that it is a messenger that takes a request from a program and goes and fetches the data you need. The API then delivers the data to the program, which can then use it as it wishes.

For example, if you go to a restaurant and order a meal, you are the program in this analogy, and the waiter is the API. You tell the waiter what you want, and he goes and prepares your meal. When your meal is ready, the waiter brings it to you and gives it to you. You didn’t have to know anything about how the meal was prepared, all you needed to know was what you wanted and how to ask for it.

So, instead of worrying about how the meal was prepared, you are more concerned with getting what you want, so you are more concerned with the “input” and the “output”. In the restaurant analogy, the input is how you order, and the output is the meal you receive.

What is REST?

REST stands for Representational State Transfer. It is an architectural style for designing networked applications. It was initially created to guide the design and development of the architecture for the web. RESTful API is an API that conforms to the constraints of REST architecture. REST architecture is defined by the following principles:

  1. Uniform Interface: The interface between components is defined in a way that doesn’t depend on implementation details.
  2. Stateless: The server is independent of all previous requests, so the client can make requests in any order.
  3. Layered System: The client doesn’t know how many layers the server has, and the server can make requests to other servers on behalf of the client.
  4. Caching: The client can cache responses, so it doesn’t need to make the same request multiple times.
  5. Code on Demand: The server can extend or customize the functionality of the client by transferring executable code.

What is RESTful API?

It is a style of architecture that describes how to implement Web API’s. It is based on HTTP protocol, used to build distributed systems, and supports multiple programming languages. The advantages of RESTful API are:

  • Scalability: Since the client doesn’t need to maintain state, it can improve scalability.
  • Flexibility: Since the client and server are completely decoupled, it can provide flexibility by allowing different layers of application functionality.
  • Independence: You can use different programming languages to write programs without affecting the design of the API.

The way to use RESTful API

  • Only one resource identifier: The server usually uses a uniform URL to identify the resource.

  • HTTP Method: The HTTP method is a way to tell the server what you want to do with the resource. The most common HTTP methods are:

    • GET: Used to retrieve data from the server.
    • POST: Used to send data to the server.
    • PUT: Used to update data on the server.
    • DELETE: Used to delete data from the server.
    • PATCH: Used to update part of the data on the server.
  • HTTP Header: The HTTP header is a set of key-value pairs that provide additional information about the request.

HTTP Status Code

The HTTP status code is a 3-digit number that indicates the status of the response. The first digit of the status code defines the class of response. The most common status codes are:

  • 1xx: Informational responses, the request has been received and the process is continuing.
  • 2xx: Success, the request has been successfully received, understood, and accepted.
  • 3xx: Redirection, further action needs to be taken in order to complete the request.
  • 4xx: Client error, the request contains bad syntax or cannot be fulfilled.
  • 5xx: Server error, the server failed to fulfill an apparently valid request.