LearnViz CompSci
Home / Learn / Software Engineering / REST

Advanced Topic 39 of 50 Software Engineering

REST

Architectural style using resources and standard HTTP verbs.

How it works

Representational State Transfer is an architectural style for networked APIs, built on resources identified by URLs and manipulated through a uniform interface using HTTP methods: GET to read, POST to create, PUT or PATCH to update and DELETE to remove. Servers are stateless, responses indicate cacheability, representations are commonly JSON, and status codes convey outcomes. Hypermedia, or HATEOAS, lets responses include links to next actions.

Step-by-step walkthrough

  1. GET /users/7 reads a resource.
  2. The server returns JSON with status 200.
  3. POST /users creates a new resource.
  4. PUT or PATCH updates it and DELETE removes it.
  5. Requests are stateless, each carries all it needs.

Where it is used

Most web and mobile back ends and public APIs expose REST-style endpoints such as GET /users/42, which are easy to cache, test and consume from any language.

Common pitfall

Many APIs called REST are really RPC over HTTP. Using verbs in URLs, ignoring status codes or changing state with GET breaks conventions. Over-fetching and many round trips for related data are common drawbacks. Version the API, use pagination, make PUT and DELETE idempotent and return clear error bodies.

Where it fits in the course

REST is topic 39 of 50 in Software Engineering, rated Advanced. It follows API Design. The next topic is GraphQL.

Practice and explore

How to study this topic

  1. Read the explanation above and restate the definition in your own words.
  2. Open the interactive lesson and answer its mini quiz.
  3. Read the common pitfall, then write a short example that avoids it.
  4. Check your understanding in the Software Engineering quiz, and revisit the topic if you miss a question.

Frequently asked questions

What is REST?
Architectural style using resources and standard HTTP verbs. It belongs to Software Engineering and is an advanced-level topic.
Where do people use REST?
Most web and mobile back ends and public APIs expose REST-style endpoints such as GET /users/42, which are easy to cache, test and consume from any language.
What is the most common mistake with REST?
Many APIs called REST are really RPC over HTTP.
What should I learn before this topic?
Start with API Design, the topic just before it in Software Engineering.
How can I practice it?
Answer the mini quiz in the interactive lesson, then take the Software Engineering quiz.
Is REST hard to learn?
It is an Advanced topic. Expect to read the explanation more than once and to connect it with earlier topics. Working through a small example by hand helps most.
How long does it take to learn REST?
Most learners can read the explanation and finish the interactive lesson in under an hour. Fluency comes from applying the idea, so plan a few short practice sessions with the quiz.
Which topics are related to REST?
API Design, GraphQL, CQRS and Event Sourcing are closely connected. The full list is in the related topics section of this page.
What should I study after REST?
Continue with GraphQL, the next topic in Software Engineering.

Related topics