Representational State Transfer
lastmod 2025-10-17created 2014-10-1734 edits
REST (Representational State Transfer) is a style of software architecture for distributed hypermedia systems such as the World Wide Web. The term was introduced in Roy Fielding's 2000 doctoral dissertation. He is one of the principal authors of the Hypertext Transfer Protocol (HTTP). The concept has since spread widely through networking culture.
In the strict sense, REST is a collection of network architecture principles. Here, network architecture principles means an outline of how to define resources and how to address them. In the simple sense, it means a very simple interface for transmitting domain-oriented data over HTTP without an additional transport layer such as SOAP or session tracking via cookies. These two meanings naturally overlap in places and conflict in others. Following Fielding's REST architectural style, it is possible to design a very large software system without using the HTTP protocol and without transmitting over the World Wide Web. It is also possible to design with a simple XML and HTTP interface (which does not conform to REST principles) instead of using remote procedure calls. These two real-world meanings of the term REST often cause confusion in technical discussions.
Systems that follow Fielding's REST principles are often called RESTful. Enthusiastic REST advocates call themselves RESTafrians.
REST is a set of rules for organizing and transmitting information on the Internet
Categories
Application architecture
Sample diagram of the relationship between a Front-end (RESTful) and a Web Application:
Devnexus2014-application_architecture.png
Use Cookie
RESTful API Documentation Software
- I/O Docs: https://github.com/mashery/iodocs
- Swagger: https://helloreverb.com/developers/swagger
Softwares
- insomnia - Design and debug APIs like a human, not a robot.
- Step CI - Lightweight open-source alternative to Pingdom & Checkly
- Hoppscotch - Open source API development ecosystem with PWA support.
- Fiddler
- Insomnia
- Postman
- Hapi
- HTTP Toolkit - Open source for HTTP debugging
- vim-rest-console - Working with
.restfiles in vim. - Resterm - Terminal-based REST client (supports HTTP, GraphQL, gRPC)
API Generation
- Integuru - An AI agent that reverse-engineers internal APIs to generate integration code for external use
- ROAPI - Generate APIs for static datasets without a single line of code.
See also
Favorite site
- Wikipedia (en) REST
- 5 signs your API is not RESTFUL
- 1. Richardson Maturity Model
- What is RESTful?
- What is RestFul?
- Some design tips for applying REST architecture well 1
- [Recommended] The RESTful CookBook
- OpenAM Developer's Guide: RESTful Web Services
- Best Practices: Understanding REST Headers and Parameters
- Chapter 3. Using RESTful Web Services
About RESTful
- [Recommended] Should cookies be used in a RESTful API?
- [Recommended] RESTful Authentication
- [Recommended] The RESTful CookBook
- [Recommended] How do I handle authentication in REST?
- [Recommended] REST as Lightweight Web Services
- [Recommended] Knowing and using REST APIs properly 2
REST articles on bcho.tistory.com
- REST series part 1: REST architecture basics
- REST API design guide 3
- Understanding and designing REST APIs - #1 Getting the concepts 4
- Understanding and designing REST APIs - #2 Design guide 5
- Understanding and designing REST APIs - #3 Security guide 6
- Security for REST APIs
Guide
Sample & Reference sites
- GitHub API v3 | GitHub Developer Guide
- REST APIs - NocoDB (List of REST APIs)
- NocoDB API Documentation (Swagger)
References
-
Spoqa_Tech_Blog-REST_good_tip.pdf ↩
-
Meetup_TOAST_Cloud_-_Knowing_and_using_the_REST_API.pdf ↩
-
Bcho_tistory-rest_api_design_guide.pdf ↩
-
Bcho_tistory-understanding_and_design_01-introduce.pdf ↩
-
Bcho_tistory-understanding_and_design_02-api_design.pdf ↩
-
Bcho_tistory-understanding_and_design_03-security.pdf ↩
- C++
- Casablanca
- CodingGuidelines:REST
- Communication protocol
- Computer Language
- CRUD
- Fiddler
- Hoppscotch
- Idempotence
- Insomnia
- Integuru
- Lumi
- Media Streaming
- Metlo
- Microsoft Graph API
- MLflow:Rest
- OpenAPI Specification
- Postman
- Programming
- Protocol
- Resterm
- Simple Object Access Protocol
- Software design pattern
- SolutionStack:FullStackDeveloper:Curriculum
- Spring
- Spring:Rest
- Vim-rest-console
- Web development
- Ws4sqlite