Escriu per cercar…

REST

REST is a set of rules and recommendations for designing a web API.

S'ensenya a
Llenguatges de marques i sistemes de gestió d’informacióDades documentalsASIXDAMDAWDAW-BIO

REST (Representational State Transfer) is the most common way for applications and services to talk to each other over the Internet. If you’ve ever used a mobile app that fetches data from a server, you’ve likely interacted with a REST API.

Think of REST as a set of “best practices” or “guidelines” for creating web services. A service that follows these rules is called RESTful.

REST is NOT a Protocol

Unlike HTTP, REST is not a strict protocol or a standard. It’s an architectural style. This means it’s a collection of useful recommendations that help you build services that are easy to use and scale.

The Core Concept: Resources

In the world of REST, everything is a resource.

A resource is any piece of data that your API provides.

For example:

  • A user
  • A book
  • A list of tasks
  • A weather report

Each resource is identified by a unique address called a URI (Uniform Resource Identifier), which usually looks like a URL.

Six REST Principles

To make a service truly RESTful, it should follow these six principles. Don’t worry if they sound a bit technical at first—they are mostly about keeping things simple and organized.

  1. Client-Server Model: The user interface (client) and the data storage (server) are separate. This allows them to evolve independently.
  2. Statelessness: The server doesn’t remember anything about previous requests. Every request must contain all the information needed to understand it.

    Think of it like a vending machine: it doesn’t care who you are; it just needs the right coin and a button press to give you a soda.

  3. Cacheable: Responses should define themselves as cacheable or not to prevent clients from requesting the same data over and over.
  4. Uniform Interface: This is the most important part. All resources should be accessed in a consistent way, making the API easy to learn.
  5. Layered System: A client shouldn’t need to know if it’s talking directly to the server or to an intermediary (like a security layer or a load balancer).
  6. Code on Demand (Optional): Sometimes the server can send executable code (like a script) to the client. This is rarely used.

HTTP Methods: The “Verbs” of REST

REST usually works on top of HTTP. It uses HTTP “methods” to tell the server what action to perform on a resource.

This is very similar to the CRUD model used in databases:

ActionHTTP MethodCRUD Equivalent
ReadGETRetrieve data
CreatePOSTAdd new data
UpdatePUTReplace/Update data
DeleteDELETERemove data

How they work in practice:

  • GET: Used to read a resource. If successful, the server returns the data (usually in JSON format) and a 200 OK status.
  • POST: Used to create a new resource. If successful, it returns a 201 Created status and the link to the new item.
  • PUT: Used to update an existing resource or create it if you know the ID. Returns 200 OK or 204 No Content.
  • DELETE: Used to remove a resource. Returns 200 OK or 204 No Content.

Example: A Library API

Imagine we are building an API for a library. Here is how we would use REST to manage books:

GoalMethodURI
Get all booksGEThttps://api.example.com/books
Get a specific bookGEThttps://api.example.com/books/123
Add a new bookPOSThttps://api.example.com/books
Update book #123PUThttps://api.example.com/books/123
Delete book #123DELETEhttps://api.example.com/books/123

API Naming Conventions

To make your API “intuitive” (easy for other developers to guess how it works), follow these naming rules:

1. Use Nouns, Not Verbs

The URI should represent the “thing” (the resource), not the “action”. The action is already defined by the HTTP method.

  • Correct: GET /users
  • Incorrect: GET /getUsers or POST /create-user

2. Use Plural Nouns

It’s standard practice to use plurals for collections.

  • Correct: /books/12
  • Incorrect: /book/12

3. Use Hyphens for Readability

If a resource name has multiple words, use hyphens (-), not underscores (_) or camelCase.

  • Correct: /product-categories
  • Incorrect: /product_categories or /productCategories

4. No Trailing Slashes

Don’t add a / at the end of your URI. It’s redundant and can sometimes cause confusion for caches.

  • Correct: /items
  • Incorrect: /items/

5. Version Your API

Always include a version number (like v1) in the path. This allows you to make big changes later without breaking older apps that still use your API.

  • Example: https://api.example.com/v1/users

6. Filtering and Sorting

Use “query parameters” (the part after the ?) to filter or sort lists.

  • Example: /items?color=red&sort=price

Estàs llegint una vista prèvia.

Inicia sessió amb Google per llegir la pàgina completa.

Inicia sessió amb Google

Amb qualsevol compte de Google. Només et demanarem que acceptis les condicions del servei.