{
    "content": "<h1>Representational State Transfer (REST)<\/h1><p><a href=\"..\/REST\/\">REST<\/a> is an architectural style for distributed hypermedia systems, originally defined by <a href=\"..\/Roy-Fielding\/\">Roy-Fielding<\/a> in his 2000 doctoral dissertation. It is built upon the principles of the <a href=\"..\/World-Wide-Web\/\">World-Wide-Web<\/a> and leverages the <a href=\"..\/HTTP\/\">HTTP<\/a> protocol to facilitate communication between a <a href=\"..\/Client-Server\/\">Client-Server<\/a> architecture.<\/p><p>A <a href=\"..\/RESTful-API\/\">RESTful-API<\/a> is characterized by its adherence to six architectural constraints: <a href=\"..\/Stateless\/\">Stateless<\/a> interaction, <a href=\"..\/Cacheable\/\">Cacheable<\/a> data, a <a href=\"..\/Layered-System\/\">Layered-System<\/a>, <a href=\"..\/Uniform-Interface\/\">Uniform-Interface<\/a>, <a href=\"..\/Code-On-Demand\/\">Code-On-Demand<\/a>, and the separation of concerns. As noted in the <a href=\"https:\/\/www.ics.uci.edu\/~fielding\/pubs\/dissertation\/rest_arch_style.htm\">original dissertation<\/a>, these constraints help improve performance, scalability, and simplicity.<\/p><p>In a <a href=\"..\/REST\/\">REST<\/a> environment, resources are identified by <a href=\"..\/URI\/\">URIs<\/a> and manipulated using standard <a href=\"..\/HTTP-Methods\/\">HTTP-Methods<\/a> such as <a href=\"..\/GET\/\">GET<\/a>, <a href=\"..\/POST\/\">POST<\/a>, <a href=\"..\/PUT\/\">PUT<\/a>, and <a href=\"..\/DELETE\/\">DELETE<\/a>. While <a href=\"..\/JSON\/\">JSON<\/a> is the most common data format used today, <a href=\"..\/XML\/\">XML<\/a> is also supported. Documentation from <a href=\"https:\/\/developer.mozilla.org\/en-US\/docs\/Glossary\/REST\">MDN Web Docs<\/a> highlights that REST remains the dominant standard for public <a href=\"..\/Web-Services\/\">Web-Services<\/a>.<\/p><ul><li><a href=\"..\/API-Design\/\">API-Design<\/a><\/li><li><a href=\"..\/SOAP\/\">SOAP<\/a><\/li><li><a href=\"..\/GraphQL\/\">GraphQL<\/a><\/li><li><a href=\"..\/Microservices\/\">Microservices<\/a><\/li><\/ul>",
    "tags": [
        "rest",
        "api",
        "architecture",
        "http",
        "web-services",
        "json",
        "stateless",
        "backend",
        "software-design",
        "networking"
    ]
}