Swiftorial Logo
Home
Swift Lessons
Matchups
CodeSnaps
Tutorials
Career
Resources

Introduction to REST

What is REST?

REST (Representational State Transfer) is an architectural style for designing networked applications. It relies on a stateless, client-server, cacheable communications protocol -- the HTTP protocol is most commonly used. RESTful applications use HTTP requests to perform CRUD (Create, Read, Update, Delete) operations on resources.

Key Concepts of REST

  • Resources: The key abstraction of information in REST. Resources are identified by URIs.
  • Representation: A resource can have multiple representations (e.g., JSON, XML).
  • Stateless: Each request from a client to server must contain all the information needed to understand and process the request.
  • CRUD Operations: The primary operations on resources, typically mapped to HTTP methods (GET, POST, PUT, DELETE).

HTTP Methods

REST uses standard HTTP methods to perform operations:

  • GET: Retrieve a resource.
  • POST: Create a new resource.
  • PUT: Update an existing resource.
  • DELETE: Delete a resource.

Example: A Simple RESTful API

Let's consider a simple example of a RESTful API for managing a collection of books. The base URL for the API is https://api.example.com/books.

GET /books

Retrieve a list of books.

GET https://api.example.com/books

Example response:

[
    {"id": 1, "title": "1984", "author": "George Orwell"},
    {"id": 2, "title": "To Kill a Mockingbird", "author": "Harper Lee"}
]

POST /books

Create a new book.

POST https://api.example.com/books
Content-Type: application/json

{
    "title": "The Great Gatsby",
    "author": "F. Scott Fitzgerald"
}

Example response:

{
    "id": 3,
    "title": "The Great Gatsby",
    "author": "F. Scott Fitzgerald"
}

GET /books/{id}

Retrieve a specific book by ID.

GET https://api.example.com/books/1

Example response:

{
    "id": 1,
    "title": "1984",
    "author": "George Orwell"
}

PUT /books/{id}

Update an existing book by ID.

PUT https://api.example.com/books/1
Content-Type: application/json

{
    "title": "Nineteen Eighty-Four",
    "author": "George Orwell"
}

Example response:

{
    "id": 1,
    "title": "Nineteen Eighty-Four",
    "author": "George Orwell"
}

DELETE /books/{id}

Delete a book by ID.

DELETE https://api.example.com/books/1

Example response:

{
    "message": "Book deleted successfully"
}

Conclusion

REST is a powerful and flexible architectural style for building web APIs. By understanding its key concepts and principles, you can design APIs that are easy to use and maintain. The examples provided demonstrate how to perform basic CRUD operations using HTTP methods in a RESTful API.