[{"data":1,"prerenderedAt":3197},["ShallowReactive",2],{"seo-tech-guide-rest-apis-explained":3,"content-query-ToJgIn0PqM":1779},{"_path":4,"_dir":5,"_draft":6,"_partial":6,"_locale":7,"title":8,"description":9,"category":5,"categoryLabel":10,"publishedAt":11,"updatedAt":12,"author":13,"tags":16,"featured":22,"body":23,"_type":1773,"_id":1774,"_source":1775,"_file":1776,"_stem":1777,"_extension":1778},"\u002Ftech-guides\u002Frest-apis-explained","tech-guides",false,"","REST APIs Explained: Architectural Constraints, HTTP Semantics, and Production Standards","A comprehensive developer guide to Representational State Transfer (REST) architecture, covering HTTP methods, PATCH idempotency nuances, RFC 9457 problem details, pagination, authentication, and API versioning.","Tech Guides","2026-10-24T09:00:00Z","2026-10-27T10:00:00Z",{"name":14,"role":15},"Editorial Staff","Engineering Education Team",[17,18,19,20,21],"REST","APIs","Backend","HTTP","Web Architecture",true,{"type":24,"children":25,"toc":1753},"root",[26,41,46,51,55,62,67,149,152,158,177,184,273,463,466,472,490,499,522,528,548,798,801,807,813,978,984,996,1009,1193,1198,1201,1207,1213,1218,1370,1376,1381,1428,1434,1439,1484,1487,1493,1498,1631,1652,1655,1661,1747],{"type":27,"tag":28,"props":29,"children":30},"element","p",{},[31,34,39],{"type":32,"value":33},"text","Representational State Transfer (",{"type":27,"tag":35,"props":36,"children":37},"strong",{},[38],{"type":32,"value":17},{"type":32,"value":40},") is an architectural style for distributed hypermedia systems first introduced by Roy Fielding in his 2000 doctoral dissertation. Today, RESTful APIs serve as the primary communication backbone connecting browser applications, mobile clients, and backend microservices across the global technology ecosystem.",{"type":27,"tag":28,"props":42,"children":43},{},[44],{"type":32,"value":45},"Despite its ubiquity, many production APIs violate fundamental REST conventions—frequently confusing RPC-style URL actions with RESTful resource representations, misusing HTTP status codes, or mishandling idempotency during network retries.",{"type":27,"tag":28,"props":47,"children":48},{},[49],{"type":32,"value":50},"This guide provides a rigorous, practical reference for designing resilient RESTful APIs, examining architectural constraints, resource modeling, PATCH idempotency semantics, RFC 9457 problem details, pagination patterns, authentication strategies, and URI versioning.",{"type":27,"tag":52,"props":53,"children":54},"hr",{},[],{"type":27,"tag":56,"props":57,"children":59},"h2",{"id":58},"_1-the-six-foundational-architectural-constraints-of-rest",[60],{"type":32,"value":61},"1. The Six Foundational Architectural Constraints of REST",{"type":27,"tag":28,"props":63,"children":64},{},[65],{"type":32,"value":66},"An API is not \"RESTful\" simply because it sends JSON over HTTP. According to Fielding's architectural definition, a system must adhere to six specific constraints:",{"type":27,"tag":68,"props":69,"children":70},"ol",{},[71,82,92,119,129,139],{"type":27,"tag":72,"props":73,"children":74},"li",{},[75,80],{"type":27,"tag":35,"props":76,"children":77},{},[78],{"type":32,"value":79},"Client-Server Separation:",{"type":32,"value":81}," User interface concerns are decoupled from data storage concerns. Clients do not manage database state; servers do not manage UI layout rendering.",{"type":27,"tag":72,"props":83,"children":84},{},[85,90],{"type":27,"tag":35,"props":86,"children":87},{},[88],{"type":32,"value":89},"Statelessness:",{"type":32,"value":91}," Each request from client to server must contain all the contextual information required to understand and authorize the transaction. The server maintains no client session state between requests.",{"type":27,"tag":72,"props":93,"children":94},{},[95,100,102,109,111,117],{"type":27,"tag":35,"props":96,"children":97},{},[98],{"type":32,"value":99},"Cacheability:",{"type":32,"value":101}," Responses must explicitly declare themselves as cacheable or non-cacheable (via ",{"type":27,"tag":103,"props":104,"children":106},"code",{"className":105},[],[107],{"type":32,"value":108},"Cache-Control",{"type":32,"value":110}," and ",{"type":27,"tag":103,"props":112,"children":114},{"className":113},[],[115],{"type":32,"value":116},"ETag",{"type":32,"value":118}," headers) to prevent clients from reusing stale data.",{"type":27,"tag":72,"props":120,"children":121},{},[122,127],{"type":27,"tag":35,"props":123,"children":124},{},[125],{"type":32,"value":126},"Uniform Interface:",{"type":32,"value":128}," The cornerstone of REST. Resources are identified using standardized URIs, manipulated through self-describing representations, and accompanied by metadata.",{"type":27,"tag":72,"props":130,"children":131},{},[132,137],{"type":27,"tag":35,"props":133,"children":134},{},[135],{"type":32,"value":136},"Layered System:",{"type":32,"value":138}," A client cannot tell whether it is communicating directly with the origin server or through an intermediary reverse proxy, CDN, API gateway, or load balancer.",{"type":27,"tag":72,"props":140,"children":141},{},[142,147],{"type":27,"tag":35,"props":143,"children":144},{},[145],{"type":32,"value":146},"Code on Demand (Optional):",{"type":32,"value":148}," Servers may temporarily extend client capabilities by transmitting executable scripts (such as JavaScript or WebAssembly).",{"type":27,"tag":52,"props":150,"children":151},{},[],{"type":27,"tag":56,"props":153,"children":155},{"id":154},"_2-resource-oriented-uri-design-conventions",[156],{"type":32,"value":157},"2. Resource-Oriented URI Design Conventions",{"type":27,"tag":28,"props":159,"children":160},{},[161,163,168,170,175],{"type":32,"value":162},"A foundational principle of REST is that ",{"type":27,"tag":35,"props":164,"children":165},{},[166],{"type":32,"value":167},"URIs represent nouns (resources)",{"type":32,"value":169},", while ",{"type":27,"tag":35,"props":171,"children":172},{},[173],{"type":32,"value":174},"HTTP verbs represent actions",{"type":32,"value":176},".",{"type":27,"tag":178,"props":179,"children":181},"h3",{"id":180},"core-best-practices-for-resource-uris",[182],{"type":32,"value":183},"Core Best Practices for Resource URIs",{"type":27,"tag":185,"props":186,"children":187},"ul",{},[188,213,238,255],{"type":27,"tag":72,"props":189,"children":190},{},[191,196,198,204,206,212],{"type":27,"tag":35,"props":192,"children":193},{},[194],{"type":32,"value":195},"Use Plural Nouns for Collections:",{"type":32,"value":197}," Prefer ",{"type":27,"tag":103,"props":199,"children":201},{"className":200},[],[202],{"type":32,"value":203},"\u002Fapi\u002Fv1\u002Fjobs",{"type":32,"value":205}," over ",{"type":27,"tag":103,"props":207,"children":209},{"className":208},[],[210],{"type":32,"value":211},"\u002Fapi\u002Fv1\u002Fjob",{"type":32,"value":176},{"type":27,"tag":72,"props":214,"children":215},{},[216,221,223,229,231,237],{"type":27,"tag":35,"props":217,"children":218},{},[219],{"type":32,"value":220},"Never Put Verbs in Paths:",{"type":32,"value":222}," Avoid RPC patterns like ",{"type":27,"tag":103,"props":224,"children":226},{"className":225},[],[227],{"type":32,"value":228},"\u002Fapi\u002Fv1\u002FgetJobs",{"type":32,"value":230}," or ",{"type":27,"tag":103,"props":232,"children":234},{"className":233},[],[235],{"type":32,"value":236},"\u002Fapi\u002Fv1\u002FdeleteJob?id=12",{"type":32,"value":176},{"type":27,"tag":72,"props":239,"children":240},{},[241,246,248,254],{"type":27,"tag":35,"props":242,"children":243},{},[244],{"type":32,"value":245},"Model Hierarchical Relationships Naturally:",{"type":32,"value":247}," Use nested path segments to represent sub-resources: ",{"type":27,"tag":103,"props":249,"children":251},{"className":250},[],[252],{"type":32,"value":253},"\u002Fapi\u002Fv1\u002Fcompanies\u002Fstripe\u002Fjobs",{"type":32,"value":176},{"type":27,"tag":72,"props":256,"children":257},{},[258,263,265,271],{"type":27,"tag":35,"props":259,"children":260},{},[261],{"type":32,"value":262},"Use Hyphenated Lowercase Slugs:",{"type":32,"value":264}," Standardize on kebab-case for multi-word paths (e.g., ",{"type":27,"tag":103,"props":266,"children":268},{"className":267},[],[269],{"type":32,"value":270},"\u002Fapi\u002Fv1\u002Fcareer-advice",{"type":32,"value":272},"), avoiding underscores or camelCase.",{"type":27,"tag":274,"props":275,"children":276},"table",{},[277,302],{"type":27,"tag":278,"props":279,"children":280},"thead",{},[281],{"type":27,"tag":282,"props":283,"children":284},"tr",{},[285,292,297],{"type":27,"tag":286,"props":287,"children":289},"th",{"align":288},"left",[290],{"type":32,"value":291},"Operation",{"type":27,"tag":286,"props":293,"children":294},{"align":288},[295],{"type":32,"value":296},"Non-RESTful RPC Antipattern",{"type":27,"tag":286,"props":298,"children":299},{"align":288},[300],{"type":32,"value":301},"Clean RESTful Pattern",{"type":27,"tag":303,"props":304,"children":305},"tbody",{},[306,333,359,385,411,437],{"type":27,"tag":282,"props":307,"children":308},{},[309,315,324],{"type":27,"tag":310,"props":311,"children":312},"td",{"align":288},[313],{"type":32,"value":314},"Retrieve all jobs",{"type":27,"tag":310,"props":316,"children":317},{"align":288},[318],{"type":27,"tag":103,"props":319,"children":321},{"className":320},[],[322],{"type":32,"value":323},"GET \u002FgetAllJobs",{"type":27,"tag":310,"props":325,"children":326},{"align":288},[327],{"type":27,"tag":103,"props":328,"children":330},{"className":329},[],[331],{"type":32,"value":332},"GET \u002Fapi\u002Fv1\u002Fjobs",{"type":27,"tag":282,"props":334,"children":335},{},[336,341,350],{"type":27,"tag":310,"props":337,"children":338},{"align":288},[339],{"type":32,"value":340},"Retrieve specific job (42)",{"type":27,"tag":310,"props":342,"children":343},{"align":288},[344],{"type":27,"tag":103,"props":345,"children":347},{"className":346},[],[348],{"type":32,"value":349},"POST \u002FgetJobById { id: 42 }",{"type":27,"tag":310,"props":351,"children":352},{"align":288},[353],{"type":27,"tag":103,"props":354,"children":356},{"className":355},[],[357],{"type":32,"value":358},"GET \u002Fapi\u002Fv1\u002Fjobs\u002F42",{"type":27,"tag":282,"props":360,"children":361},{},[362,367,376],{"type":27,"tag":310,"props":363,"children":364},{"align":288},[365],{"type":32,"value":366},"Create a new job vacancy",{"type":27,"tag":310,"props":368,"children":369},{"align":288},[370],{"type":27,"tag":103,"props":371,"children":373},{"className":372},[],[374],{"type":32,"value":375},"POST \u002FcreateJob",{"type":27,"tag":310,"props":377,"children":378},{"align":288},[379],{"type":27,"tag":103,"props":380,"children":382},{"className":381},[],[383],{"type":32,"value":384},"POST \u002Fapi\u002Fv1\u002Fjobs",{"type":27,"tag":282,"props":386,"children":387},{},[388,393,402],{"type":27,"tag":310,"props":389,"children":390},{"align":288},[391],{"type":32,"value":392},"Complete resource replacement",{"type":27,"tag":310,"props":394,"children":395},{"align":288},[396],{"type":27,"tag":103,"props":397,"children":399},{"className":398},[],[400],{"type":32,"value":401},"POST \u002FupdateJob\u002F42",{"type":27,"tag":310,"props":403,"children":404},{"align":288},[405],{"type":27,"tag":103,"props":406,"children":408},{"className":407},[],[409],{"type":32,"value":410},"PUT \u002Fapi\u002Fv1\u002Fjobs\u002F42",{"type":27,"tag":282,"props":412,"children":413},{},[414,419,428],{"type":27,"tag":310,"props":415,"children":416},{"align":288},[417],{"type":32,"value":418},"Partial resource update",{"type":27,"tag":310,"props":420,"children":421},{"align":288},[422],{"type":27,"tag":103,"props":423,"children":425},{"className":424},[],[426],{"type":32,"value":427},"POST \u002FpatchJob\u002F42",{"type":27,"tag":310,"props":429,"children":430},{"align":288},[431],{"type":27,"tag":103,"props":432,"children":434},{"className":433},[],[435],{"type":32,"value":436},"PATCH \u002Fapi\u002Fv1\u002Fjobs\u002F42",{"type":27,"tag":282,"props":438,"children":439},{},[440,445,454],{"type":27,"tag":310,"props":441,"children":442},{"align":288},[443],{"type":32,"value":444},"Delete a job vacancy",{"type":27,"tag":310,"props":446,"children":447},{"align":288},[448],{"type":27,"tag":103,"props":449,"children":451},{"className":450},[],[452],{"type":32,"value":453},"GET \u002FdeleteJob?id=42",{"type":27,"tag":310,"props":455,"children":456},{"align":288},[457],{"type":27,"tag":103,"props":458,"children":460},{"className":459},[],[461],{"type":32,"value":462},"DELETE \u002Fapi\u002Fv1\u002Fjobs\u002F42",{"type":27,"tag":52,"props":464,"children":465},{},[],{"type":27,"tag":56,"props":467,"children":469},{"id":468},"_3-http-methods-safety-and-idempotency",[470],{"type":32,"value":471},"3. HTTP Methods, Safety, and Idempotency",{"type":27,"tag":28,"props":473,"children":474},{},[475,477,482,483,488],{"type":32,"value":476},"Understanding the distinction between ",{"type":27,"tag":35,"props":478,"children":479},{},[480],{"type":32,"value":481},"safe",{"type":32,"value":110},{"type":27,"tag":35,"props":484,"children":485},{},[486],{"type":32,"value":487},"idempotent",{"type":32,"value":489}," operations is critical for building resilient distributed systems that tolerate network timeouts and automated client retries.",{"type":27,"tag":491,"props":492,"children":494},"pre",{"code":493},"┌─────────┬──────────────┬───────────────┬────────────────────────────────────────┐\n│ Method  │ Safe (Read)? │ Idempotent?   │ Standard REST Semantics                │\n├─────────┼──────────────┼───────────────┼────────────────────────────────────────┤\n│ GET     │ YES          │ YES           │ Retrieve resource representation       │\n│ HEAD    │ YES          │ YES           │ Retrieve headers without response body │\n│ POST    │ NO           │ NO            │ Create subordinate resource or process │\n│ PUT     │ NO           │ YES           │ Complete replacement of target resource│\n│ PATCH   │ NO           │ CONDITIONAL*  │ Partial modification of target resource│\n│ DELETE  │ NO           │ YES           │ Remove target resource                 │\n└─────────┴──────────────┴───────────────┴────────────────────────────────────────┘\n",[495],{"type":27,"tag":103,"props":496,"children":497},{"__ignoreMap":7},[498],{"type":32,"value":493},{"type":27,"tag":185,"props":500,"children":501},{},[502,512],{"type":27,"tag":72,"props":503,"children":504},{},[505,510],{"type":27,"tag":35,"props":506,"children":507},{},[508],{"type":32,"value":509},"Safe Methods:",{"type":32,"value":511}," Do not modify server state. Clients can execute them repeatedly without side effects.",{"type":27,"tag":72,"props":513,"children":514},{},[515,520],{"type":27,"tag":35,"props":516,"children":517},{},[518],{"type":32,"value":519},"Idempotent Methods:",{"type":32,"value":521}," Making $N$ identical requests produces the exact same server state as making 1 request.",{"type":27,"tag":178,"props":523,"children":525},{"id":524},"the-nuance-of-patch-idempotency",[526],{"type":32,"value":527},"The Nuance of PATCH Idempotency",{"type":27,"tag":28,"props":529,"children":530},{},[531,533,539,541,546],{"type":32,"value":532},"A common misconception is that ",{"type":27,"tag":103,"props":534,"children":536},{"className":535},[],[537],{"type":32,"value":538},"PATCH",{"type":32,"value":540}," is always non-idempotent. In reality, ",{"type":27,"tag":35,"props":542,"children":543},{},[544],{"type":32,"value":545},"PATCH idempotency depends entirely on the patch format and operation semantics",{"type":32,"value":547},":",{"type":27,"tag":68,"props":549,"children":550},{},[551,661],{"type":27,"tag":72,"props":552,"children":553},{},[554,559,563,565,651,654,656,660],{"type":27,"tag":35,"props":555,"children":556},{},[557],{"type":32,"value":558},"Idempotent PATCH (JSON Merge Patch - RFC 7396):",{"type":27,"tag":560,"props":561,"children":562},"br",{},[],{"type":32,"value":564},"\nIf a client submits:",{"type":27,"tag":491,"props":566,"children":570},{"code":567,"language":568,"meta":7,"className":569,"style":7},"PATCH \u002Fapi\u002Fv1\u002Fjobs\u002F42\n{ \"status\": \"expired\", \"salaryMax\": 185000 }\n","json","language-json shiki shiki-themes github-dark",[571],{"type":27,"tag":103,"props":572,"children":573},{"__ignoreMap":7},[574,602],{"type":27,"tag":575,"props":576,"children":579},"span",{"class":577,"line":578},"line",1,[580,586,592,597],{"type":27,"tag":575,"props":581,"children":583},{"style":582},"--shiki-default:#E1E4E8",[584],{"type":32,"value":585},"PATCH \u002Fapi\u002Fv",{"type":27,"tag":575,"props":587,"children":589},{"style":588},"--shiki-default:#79B8FF",[590],{"type":32,"value":591},"1",{"type":27,"tag":575,"props":593,"children":594},{"style":582},[595],{"type":32,"value":596},"\u002Fjobs\u002F",{"type":27,"tag":575,"props":598,"children":599},{"style":588},[600],{"type":32,"value":601},"42\n",{"type":27,"tag":575,"props":603,"children":605},{"class":577,"line":604},2,[606,611,616,621,627,632,637,641,646],{"type":27,"tag":575,"props":607,"children":608},{"style":582},[609],{"type":32,"value":610},"{ ",{"type":27,"tag":575,"props":612,"children":613},{"style":588},[614],{"type":32,"value":615},"\"status\"",{"type":27,"tag":575,"props":617,"children":618},{"style":582},[619],{"type":32,"value":620},": ",{"type":27,"tag":575,"props":622,"children":624},{"style":623},"--shiki-default:#9ECBFF",[625],{"type":32,"value":626},"\"expired\"",{"type":27,"tag":575,"props":628,"children":629},{"style":582},[630],{"type":32,"value":631},", ",{"type":27,"tag":575,"props":633,"children":634},{"style":588},[635],{"type":32,"value":636},"\"salaryMax\"",{"type":27,"tag":575,"props":638,"children":639},{"style":582},[640],{"type":32,"value":620},{"type":27,"tag":575,"props":642,"children":643},{"style":588},[644],{"type":32,"value":645},"185000",{"type":27,"tag":575,"props":647,"children":648},{"style":582},[649],{"type":32,"value":650}," }\n",{"type":27,"tag":560,"props":652,"children":653},{},[],{"type":32,"value":655},"Executing this request five times leaves the resource in the exact same state as executing it once. This is ",{"type":27,"tag":35,"props":657,"children":658},{},[659],{"type":32,"value":487},{"type":32,"value":176},{"type":27,"tag":72,"props":662,"children":663},{},[664,669,672,673,779,782,784,790,792,797],{"type":27,"tag":35,"props":665,"children":666},{},[667],{"type":32,"value":668},"Non-Idempotent PATCH (JSON Patch - RFC 6902 \u002F Increment Operations):",{"type":27,"tag":560,"props":670,"children":671},{},[],{"type":32,"value":564},{"type":27,"tag":491,"props":674,"children":676},{"code":675,"language":568,"meta":7,"className":569,"style":7},"PATCH \u002Fapi\u002Fv1\u002Fjobs\u002F42\n[\n  { \"op\": \"add\", \"path\": \"\u002Ftags\u002F-\", \"value\": \"featured\" }\n]\n",[677],{"type":27,"tag":103,"props":678,"children":679},{"__ignoreMap":7},[680,699,707,770],{"type":27,"tag":575,"props":681,"children":682},{"class":577,"line":578},[683,687,691,695],{"type":27,"tag":575,"props":684,"children":685},{"style":582},[686],{"type":32,"value":585},{"type":27,"tag":575,"props":688,"children":689},{"style":588},[690],{"type":32,"value":591},{"type":27,"tag":575,"props":692,"children":693},{"style":582},[694],{"type":32,"value":596},{"type":27,"tag":575,"props":696,"children":697},{"style":588},[698],{"type":32,"value":601},{"type":27,"tag":575,"props":700,"children":701},{"class":577,"line":604},[702],{"type":27,"tag":575,"props":703,"children":704},{"style":582},[705],{"type":32,"value":706},"[\n",{"type":27,"tag":575,"props":708,"children":710},{"class":577,"line":709},3,[711,716,721,725,730,734,739,743,748,752,757,761,766],{"type":27,"tag":575,"props":712,"children":713},{"style":582},[714],{"type":32,"value":715},"  { ",{"type":27,"tag":575,"props":717,"children":718},{"style":588},[719],{"type":32,"value":720},"\"op\"",{"type":27,"tag":575,"props":722,"children":723},{"style":582},[724],{"type":32,"value":620},{"type":27,"tag":575,"props":726,"children":727},{"style":623},[728],{"type":32,"value":729},"\"add\"",{"type":27,"tag":575,"props":731,"children":732},{"style":582},[733],{"type":32,"value":631},{"type":27,"tag":575,"props":735,"children":736},{"style":588},[737],{"type":32,"value":738},"\"path\"",{"type":27,"tag":575,"props":740,"children":741},{"style":582},[742],{"type":32,"value":620},{"type":27,"tag":575,"props":744,"children":745},{"style":623},[746],{"type":32,"value":747},"\"\u002Ftags\u002F-\"",{"type":27,"tag":575,"props":749,"children":750},{"style":582},[751],{"type":32,"value":631},{"type":27,"tag":575,"props":753,"children":754},{"style":588},[755],{"type":32,"value":756},"\"value\"",{"type":27,"tag":575,"props":758,"children":759},{"style":582},[760],{"type":32,"value":620},{"type":27,"tag":575,"props":762,"children":763},{"style":623},[764],{"type":32,"value":765},"\"featured\"",{"type":27,"tag":575,"props":767,"children":768},{"style":582},[769],{"type":32,"value":650},{"type":27,"tag":575,"props":771,"children":773},{"class":577,"line":772},4,[774],{"type":27,"tag":575,"props":775,"children":776},{"style":582},[777],{"type":32,"value":778},"]\n",{"type":27,"tag":560,"props":780,"children":781},{},[],{"type":32,"value":783},"Or if the patch increments a view counter (",{"type":27,"tag":103,"props":785,"children":787},{"className":786},[],[788],{"type":32,"value":789},"{ \"incrementViews\": 1 }",{"type":32,"value":791},"), executing the request three times will append the tag three times or increment the counter by 3. This is ",{"type":27,"tag":35,"props":793,"children":794},{},[795],{"type":32,"value":796},"non-idempotent",{"type":32,"value":176},{"type":27,"tag":52,"props":799,"children":800},{},[],{"type":27,"tag":56,"props":802,"children":804},{"id":803},"_4-standardized-status-codes-and-error-handling-rfc-9457",[805],{"type":32,"value":806},"4. Standardized Status Codes and Error Handling (RFC 9457)",{"type":27,"tag":178,"props":808,"children":810},{"id":809},"essential-status-codes-for-web-apis",[811],{"type":32,"value":812},"Essential Status Codes for Web APIs",{"type":27,"tag":185,"props":814,"children":815},{},[816,847,865,883,893,903,913,923,933,950,968],{"type":27,"tag":72,"props":817,"children":818},{},[819,824,826,832,833,839,841,846],{"type":27,"tag":35,"props":820,"children":821},{},[822],{"type":32,"value":823},"200 OK:",{"type":32,"value":825}," Standard success response for ",{"type":27,"tag":103,"props":827,"children":829},{"className":828},[],[830],{"type":32,"value":831},"GET",{"type":32,"value":631},{"type":27,"tag":103,"props":834,"children":836},{"className":835},[],[837],{"type":32,"value":838},"PUT",{"type":32,"value":840},", or ",{"type":27,"tag":103,"props":842,"children":844},{"className":843},[],[845],{"type":32,"value":538},{"type":32,"value":176},{"type":27,"tag":72,"props":848,"children":849},{},[850,855,857,863],{"type":27,"tag":35,"props":851,"children":852},{},[853],{"type":32,"value":854},"201 Created:",{"type":32,"value":856}," Successfully created a new resource. Must include a ",{"type":27,"tag":103,"props":858,"children":860},{"className":859},[],[861],{"type":32,"value":862},"Location",{"type":32,"value":864}," header containing the URI of the new resource.",{"type":27,"tag":72,"props":866,"children":867},{},[868,873,875,881],{"type":27,"tag":35,"props":869,"children":870},{},[871],{"type":32,"value":872},"204 No Content:",{"type":32,"value":874}," Operation succeeded, but no payload is returned (standard for ",{"type":27,"tag":103,"props":876,"children":878},{"className":877},[],[879],{"type":32,"value":880},"DELETE",{"type":32,"value":882},").",{"type":27,"tag":72,"props":884,"children":885},{},[886,891],{"type":27,"tag":35,"props":887,"children":888},{},[889],{"type":32,"value":890},"400 Bad Request:",{"type":32,"value":892}," Malformed syntax or invalid request headers.",{"type":27,"tag":72,"props":894,"children":895},{},[896,901],{"type":27,"tag":35,"props":897,"children":898},{},[899],{"type":32,"value":900},"401 Unauthorized:",{"type":32,"value":902}," Authentication credentials missing or invalid.",{"type":27,"tag":72,"props":904,"children":905},{},[906,911],{"type":27,"tag":35,"props":907,"children":908},{},[909],{"type":32,"value":910},"403 Forbidden:",{"type":32,"value":912}," Authenticated user lacks permission to access the resource.",{"type":27,"tag":72,"props":914,"children":915},{},[916,921],{"type":27,"tag":35,"props":917,"children":918},{},[919],{"type":32,"value":920},"404 Not Found:",{"type":32,"value":922}," The target resource does not exist.",{"type":27,"tag":72,"props":924,"children":925},{},[926,931],{"type":27,"tag":35,"props":927,"children":928},{},[929],{"type":32,"value":930},"409 Conflict:",{"type":32,"value":932}," The request conflicts with current server state (e.g., duplicate slug or optimistic locking collision).",{"type":27,"tag":72,"props":934,"children":935},{},[936,941,943,949],{"type":27,"tag":35,"props":937,"children":938},{},[939],{"type":32,"value":940},"422 Unprocessable Content:",{"type":32,"value":942}," The syntax is valid JSON, but fails business domain validation (e.g., ",{"type":27,"tag":103,"props":944,"children":946},{"className":945},[],[947],{"type":32,"value":948},"salaryMin > salaryMax",{"type":32,"value":882},{"type":27,"tag":72,"props":951,"children":952},{},[953,958,960,966],{"type":27,"tag":35,"props":954,"children":955},{},[956],{"type":32,"value":957},"429 Too Many Requests:",{"type":32,"value":959}," The client exceeded rate limits. Should include a ",{"type":27,"tag":103,"props":961,"children":963},{"className":962},[],[964],{"type":32,"value":965},"Retry-After",{"type":32,"value":967}," header.",{"type":27,"tag":72,"props":969,"children":970},{},[971,976],{"type":27,"tag":35,"props":972,"children":973},{},[974],{"type":32,"value":975},"500 Internal Server Error:",{"type":32,"value":977}," Unhandled application failure.",{"type":27,"tag":178,"props":979,"children":981},{"id":980},"standardized-error-payloads-rfc-9457-problem-details",[982],{"type":32,"value":983},"Standardized Error Payloads: RFC 9457 Problem Details",{"type":27,"tag":28,"props":985,"children":986},{},[987,989,994],{"type":32,"value":988},"Historically, developers relied on RFC 7807 for error modeling. In 2023, the Internet Engineering Task Force (IETF) officially published ",{"type":27,"tag":35,"props":990,"children":991},{},[992],{"type":32,"value":993},"RFC 9457 (Problem Details for HTTP APIs)",{"type":32,"value":995},", which obsoleted RFC 7807.",{"type":27,"tag":28,"props":997,"children":998},{},[999,1001,1007],{"type":32,"value":1000},"RFC 9457 standardizes error reporting using the ",{"type":27,"tag":103,"props":1002,"children":1004},{"className":1003},[],[1005],{"type":32,"value":1006},"application\u002Fproblem+json",{"type":32,"value":1008}," media type:",{"type":27,"tag":491,"props":1010,"children":1014},{"code":1011,"language":1012,"meta":7,"className":1013,"style":7},"HTTP\u002F1.1 422 Unprocessable Content\nContent-Type: application\u002Fproblem+json\n\n{\n  \"type\": \"https:\u002F\u002Fapi.jobscapta.xyz\u002Ferrors\u002Fvalidation-failed\",\n  \"title\": \"Unprocessable Content\",\n  \"status\": 422,\n  \"detail\": \"The job listing payload failed domain validation checks.\",\n  \"instance\": \"\u002Fapi\u002Fv1\u002Fjobs\u002Fpostings\u002Freq_99214\",\n  \"invalidParams\": [\n    {\n      \"name\": \"salaryMin\",\n      \"reason\": \"salaryMin must be less than or equal to salaryMax\"\n    },\n    {\n      \"name\": \"applyUrl\",\n      \"reason\": \"applyUrl must be an absolute HTTPS URL\"\n    }\n  ]\n}\n","http","language-http shiki shiki-themes github-dark",[1015],{"type":27,"tag":103,"props":1016,"children":1017},{"__ignoreMap":7},[1018,1026,1034,1042,1050,1059,1068,1077,1086,1095,1104,1113,1122,1131,1140,1148,1157,1166,1175,1184],{"type":27,"tag":575,"props":1019,"children":1020},{"class":577,"line":578},[1021],{"type":27,"tag":575,"props":1022,"children":1023},{},[1024],{"type":32,"value":1025},"HTTP\u002F1.1 422 Unprocessable Content\n",{"type":27,"tag":575,"props":1027,"children":1028},{"class":577,"line":604},[1029],{"type":27,"tag":575,"props":1030,"children":1031},{},[1032],{"type":32,"value":1033},"Content-Type: application\u002Fproblem+json\n",{"type":27,"tag":575,"props":1035,"children":1036},{"class":577,"line":709},[1037],{"type":27,"tag":575,"props":1038,"children":1039},{"emptyLinePlaceholder":22},[1040],{"type":32,"value":1041},"\n",{"type":27,"tag":575,"props":1043,"children":1044},{"class":577,"line":772},[1045],{"type":27,"tag":575,"props":1046,"children":1047},{},[1048],{"type":32,"value":1049},"{\n",{"type":27,"tag":575,"props":1051,"children":1053},{"class":577,"line":1052},5,[1054],{"type":27,"tag":575,"props":1055,"children":1056},{},[1057],{"type":32,"value":1058},"  \"type\": \"https:\u002F\u002Fapi.jobscapta.xyz\u002Ferrors\u002Fvalidation-failed\",\n",{"type":27,"tag":575,"props":1060,"children":1062},{"class":577,"line":1061},6,[1063],{"type":27,"tag":575,"props":1064,"children":1065},{},[1066],{"type":32,"value":1067},"  \"title\": \"Unprocessable Content\",\n",{"type":27,"tag":575,"props":1069,"children":1071},{"class":577,"line":1070},7,[1072],{"type":27,"tag":575,"props":1073,"children":1074},{},[1075],{"type":32,"value":1076},"  \"status\": 422,\n",{"type":27,"tag":575,"props":1078,"children":1080},{"class":577,"line":1079},8,[1081],{"type":27,"tag":575,"props":1082,"children":1083},{},[1084],{"type":32,"value":1085},"  \"detail\": \"The job listing payload failed domain validation checks.\",\n",{"type":27,"tag":575,"props":1087,"children":1089},{"class":577,"line":1088},9,[1090],{"type":27,"tag":575,"props":1091,"children":1092},{},[1093],{"type":32,"value":1094},"  \"instance\": \"\u002Fapi\u002Fv1\u002Fjobs\u002Fpostings\u002Freq_99214\",\n",{"type":27,"tag":575,"props":1096,"children":1098},{"class":577,"line":1097},10,[1099],{"type":27,"tag":575,"props":1100,"children":1101},{},[1102],{"type":32,"value":1103},"  \"invalidParams\": [\n",{"type":27,"tag":575,"props":1105,"children":1107},{"class":577,"line":1106},11,[1108],{"type":27,"tag":575,"props":1109,"children":1110},{},[1111],{"type":32,"value":1112},"    {\n",{"type":27,"tag":575,"props":1114,"children":1116},{"class":577,"line":1115},12,[1117],{"type":27,"tag":575,"props":1118,"children":1119},{},[1120],{"type":32,"value":1121},"      \"name\": \"salaryMin\",\n",{"type":27,"tag":575,"props":1123,"children":1125},{"class":577,"line":1124},13,[1126],{"type":27,"tag":575,"props":1127,"children":1128},{},[1129],{"type":32,"value":1130},"      \"reason\": \"salaryMin must be less than or equal to salaryMax\"\n",{"type":27,"tag":575,"props":1132,"children":1134},{"class":577,"line":1133},14,[1135],{"type":27,"tag":575,"props":1136,"children":1137},{},[1138],{"type":32,"value":1139},"    },\n",{"type":27,"tag":575,"props":1141,"children":1143},{"class":577,"line":1142},15,[1144],{"type":27,"tag":575,"props":1145,"children":1146},{},[1147],{"type":32,"value":1112},{"type":27,"tag":575,"props":1149,"children":1151},{"class":577,"line":1150},16,[1152],{"type":27,"tag":575,"props":1153,"children":1154},{},[1155],{"type":32,"value":1156},"      \"name\": \"applyUrl\",\n",{"type":27,"tag":575,"props":1158,"children":1160},{"class":577,"line":1159},17,[1161],{"type":27,"tag":575,"props":1162,"children":1163},{},[1164],{"type":32,"value":1165},"      \"reason\": \"applyUrl must be an absolute HTTPS URL\"\n",{"type":27,"tag":575,"props":1167,"children":1169},{"class":577,"line":1168},18,[1170],{"type":27,"tag":575,"props":1171,"children":1172},{},[1173],{"type":32,"value":1174},"    }\n",{"type":27,"tag":575,"props":1176,"children":1178},{"class":577,"line":1177},19,[1179],{"type":27,"tag":575,"props":1180,"children":1181},{},[1182],{"type":32,"value":1183},"  ]\n",{"type":27,"tag":575,"props":1185,"children":1187},{"class":577,"line":1186},20,[1188],{"type":27,"tag":575,"props":1189,"children":1190},{},[1191],{"type":32,"value":1192},"}\n",{"type":27,"tag":28,"props":1194,"children":1195},{},[1196],{"type":32,"value":1197},"Adopting RFC 9457 allows frontend and mobile clients to parse error types, titles, and validation parameters predictably across all services.",{"type":27,"tag":52,"props":1199,"children":1200},{},[],{"type":27,"tag":56,"props":1202,"children":1204},{"id":1203},"_5-production-patterns-pagination-authentication-and-versioning",[1205],{"type":32,"value":1206},"5. Production Patterns: Pagination, Authentication, and Versioning",{"type":27,"tag":178,"props":1208,"children":1210},{"id":1209},"a-pagination-cursor-based-vs-offset-based",[1211],{"type":32,"value":1212},"A. Pagination: Cursor-Based vs. Offset-Based",{"type":27,"tag":28,"props":1214,"children":1215},{},[1216],{"type":32,"value":1217},"When serving large collections, unbounded queries degrade database performance:",{"type":27,"tag":185,"props":1219,"children":1220},{},[1221,1254],{"type":27,"tag":72,"props":1222,"children":1223},{},[1224,1237,1239,1245,1246,1252],{"type":27,"tag":35,"props":1225,"children":1226},{},[1227,1229,1235],{"type":32,"value":1228},"Offset-Based (",{"type":27,"tag":103,"props":1230,"children":1232},{"className":1231},[],[1233],{"type":32,"value":1234},"?page=2&limit=20",{"type":32,"value":1236},"):",{"type":32,"value":1238}," Simple to implement using SQL ",{"type":27,"tag":103,"props":1240,"children":1242},{"className":1241},[],[1243],{"type":32,"value":1244},"LIMIT",{"type":32,"value":110},{"type":27,"tag":103,"props":1247,"children":1249},{"className":1248},[],[1250],{"type":32,"value":1251},"OFFSET",{"type":32,"value":1253},". However, it suffers from the \"window shift\" problem when rows are inserted or deleted while the user is paging, and exhibits $O(N)$ scanning performance at deep offsets.",{"type":27,"tag":72,"props":1255,"children":1256},{},[1257,1269,1271,1277,1278,1284,1286,1368],{"type":27,"tag":35,"props":1258,"children":1259},{},[1260,1262,1268],{"type":32,"value":1261},"Cursor-Based (",{"type":27,"tag":103,"props":1263,"children":1265},{"className":1264},[],[1266],{"type":32,"value":1267},"?cursor=eyJpZCI6NDJ9&limit=20",{"type":32,"value":1236},{"type":32,"value":1270}," Uses an indexed sequential column (such as ",{"type":27,"tag":103,"props":1272,"children":1274},{"className":1273},[],[1275],{"type":32,"value":1276},"created_at",{"type":32,"value":230},{"type":27,"tag":103,"props":1279,"children":1281},{"className":1280},[],[1282],{"type":32,"value":1283},"id",{"type":32,"value":1285},") to fetch rows strictly greater or less than the cursor:\n",{"type":27,"tag":491,"props":1287,"children":1291},{"code":1288,"language":1289,"meta":7,"className":1290,"style":7},"SELECT * FROM jobs WHERE created_at \u003C '2026-10-25T12:00:00Z' ORDER BY created_at DESC LIMIT 20;\n","sql","language-sql shiki shiki-themes github-dark",[1292],{"type":27,"tag":103,"props":1293,"children":1294},{"__ignoreMap":7},[1295],{"type":27,"tag":575,"props":1296,"children":1297},{"class":577,"line":578},[1298,1304,1309,1314,1319,1324,1329,1334,1339,1344,1348,1353,1358,1363],{"type":27,"tag":575,"props":1299,"children":1301},{"style":1300},"--shiki-default:#F97583",[1302],{"type":32,"value":1303},"SELECT",{"type":27,"tag":575,"props":1305,"children":1306},{"style":1300},[1307],{"type":32,"value":1308}," *",{"type":27,"tag":575,"props":1310,"children":1311},{"style":1300},[1312],{"type":32,"value":1313}," FROM",{"type":27,"tag":575,"props":1315,"children":1316},{"style":582},[1317],{"type":32,"value":1318}," jobs ",{"type":27,"tag":575,"props":1320,"children":1321},{"style":1300},[1322],{"type":32,"value":1323},"WHERE",{"type":27,"tag":575,"props":1325,"children":1326},{"style":582},[1327],{"type":32,"value":1328}," created_at ",{"type":27,"tag":575,"props":1330,"children":1331},{"style":1300},[1332],{"type":32,"value":1333},"\u003C",{"type":27,"tag":575,"props":1335,"children":1336},{"style":623},[1337],{"type":32,"value":1338}," '2026-10-25T12:00:00Z'",{"type":27,"tag":575,"props":1340,"children":1341},{"style":1300},[1342],{"type":32,"value":1343}," ORDER BY",{"type":27,"tag":575,"props":1345,"children":1346},{"style":582},[1347],{"type":32,"value":1328},{"type":27,"tag":575,"props":1349,"children":1350},{"style":1300},[1351],{"type":32,"value":1352},"DESC",{"type":27,"tag":575,"props":1354,"children":1355},{"style":1300},[1356],{"type":32,"value":1357}," LIMIT",{"type":27,"tag":575,"props":1359,"children":1360},{"style":588},[1361],{"type":32,"value":1362}," 20",{"type":27,"tag":575,"props":1364,"children":1365},{"style":582},[1366],{"type":32,"value":1367},";\n",{"type":32,"value":1369},"\nCursor pagination provides $O(\\log N)$ performance and guarantees that items are never skipped or duplicated during infinite scrolling.",{"type":27,"tag":178,"props":1371,"children":1373},{"id":1372},"b-authentication-authorization-headers",[1374],{"type":32,"value":1375},"B. Authentication & Authorization Headers",{"type":27,"tag":28,"props":1377,"children":1378},{},[1379],{"type":32,"value":1380},"Standard REST APIs transmit credentials via standard HTTP headers rather than URL query parameters:",{"type":27,"tag":185,"props":1382,"children":1383},{},[1384,1406],{"type":27,"tag":72,"props":1385,"children":1386},{},[1387,1392],{"type":27,"tag":35,"props":1388,"children":1389},{},[1390],{"type":32,"value":1391},"Bearer Tokens (JWT \u002F OAuth2):",{"type":27,"tag":491,"props":1393,"children":1395},{"code":1394,"language":1012,"meta":7,"className":1013,"style":7},"Authorization: Bearer eyJhbGciOiJIUzI1NiIsIn...\n",[1396],{"type":27,"tag":103,"props":1397,"children":1398},{"__ignoreMap":7},[1399],{"type":27,"tag":575,"props":1400,"children":1401},{"class":577,"line":578},[1402],{"type":27,"tag":575,"props":1403,"children":1404},{},[1405],{"type":32,"value":1394},{"type":27,"tag":72,"props":1407,"children":1408},{},[1409,1414],{"type":27,"tag":35,"props":1410,"children":1411},{},[1412],{"type":32,"value":1413},"API Keys for Server-to-Server Integrations:",{"type":27,"tag":491,"props":1415,"children":1417},{"code":1416,"language":1012,"meta":7,"className":1013,"style":7},"X-API-Key: jc_live_9a8f21b7c02e\n",[1418],{"type":27,"tag":103,"props":1419,"children":1420},{"__ignoreMap":7},[1421],{"type":27,"tag":575,"props":1422,"children":1423},{"class":577,"line":578},[1424],{"type":27,"tag":575,"props":1425,"children":1426},{},[1427],{"type":32,"value":1416},{"type":27,"tag":178,"props":1429,"children":1431},{"id":1430},"c-api-versioning-strategies",[1432],{"type":32,"value":1433},"C. API Versioning Strategies",{"type":27,"tag":28,"props":1435,"children":1436},{},[1437],{"type":32,"value":1438},"APIs inevitably evolve. The industry recognizes two primary versioning strategies:",{"type":27,"tag":68,"props":1440,"children":1441},{},[1442,1460],{"type":27,"tag":72,"props":1443,"children":1444},{},[1445,1450,1458],{"type":27,"tag":35,"props":1446,"children":1447},{},[1448],{"type":32,"value":1449},"URI Path Versioning (Recommended for Public APIs):",{"type":27,"tag":491,"props":1451,"children":1453},{"code":1452},"https:\u002F\u002Fapi.jobscapta.xyz\u002Fapi\u002Fv1\u002Fjobs\nhttps:\u002F\u002Fapi.jobscapta.xyz\u002Fapi\u002Fv2\u002Fjobs\n",[1454],{"type":27,"tag":103,"props":1455,"children":1456},{"__ignoreMap":7},[1457],{"type":32,"value":1452},{"type":32,"value":1459},"\nExplicit, easily debugged in browsers and proxies, and compatible with all client frameworks.",{"type":27,"tag":72,"props":1461,"children":1462},{},[1463,1468,1482],{"type":27,"tag":35,"props":1464,"children":1465},{},[1466],{"type":32,"value":1467},"Accept Header Content Negotiation:",{"type":27,"tag":491,"props":1469,"children":1471},{"code":1470,"language":1012,"meta":7,"className":1013,"style":7},"Accept: application\u002Fvnd.jobscapta.v2+json\n",[1472],{"type":27,"tag":103,"props":1473,"children":1474},{"__ignoreMap":7},[1475],{"type":27,"tag":575,"props":1476,"children":1477},{"class":577,"line":578},[1478],{"type":27,"tag":575,"props":1479,"children":1480},{},[1481],{"type":32,"value":1470},{"type":32,"value":1483},"\nMaintains clean canonical URIs, but complicates client-side caching and browser testing.",{"type":27,"tag":52,"props":1485,"children":1486},{},[],{"type":27,"tag":56,"props":1488,"children":1490},{"id":1489},"_6-summary-architectural-checklist",[1491],{"type":32,"value":1492},"6. Summary Architectural Checklist",{"type":27,"tag":28,"props":1494,"children":1495},{},[1496],{"type":32,"value":1497},"Before publishing a production REST API:",{"type":27,"tag":185,"props":1499,"children":1502},{"className":1500},[1501],"contains-task-list",[1503,1530,1553,1576,1591,1606,1615],{"type":27,"tag":72,"props":1504,"children":1507},{"className":1505},[1506],"task-list-item",[1508,1513,1515,1521,1523,1529],{"type":27,"tag":1509,"props":1510,"children":1512},"input",{"disabled":22,"type":1511},"checkbox",[],{"type":32,"value":1514}," URIs use plural nouns (",{"type":27,"tag":103,"props":1516,"children":1518},{"className":1517},[],[1519],{"type":32,"value":1520},"\u002Fjobs",{"type":32,"value":1522},") and avoid RPC action verbs (",{"type":27,"tag":103,"props":1524,"children":1526},{"className":1525},[],[1527],{"type":32,"value":1528},"\u002FgetJobs",{"type":32,"value":882},{"type":27,"tag":72,"props":1531,"children":1533},{"className":1532},[1506],[1534,1537,1539,1544,1545,1551],{"type":27,"tag":1509,"props":1535,"children":1536},{"disabled":22,"type":1511},[],{"type":32,"value":1538}," Safe methods (",{"type":27,"tag":103,"props":1540,"children":1542},{"className":1541},[],[1543],{"type":32,"value":831},{"type":32,"value":631},{"type":27,"tag":103,"props":1546,"children":1548},{"className":1547},[],[1549],{"type":32,"value":1550},"HEAD",{"type":32,"value":1552},") never produce destructive side effects.",{"type":27,"tag":72,"props":1554,"children":1556},{"className":1555},[1506],[1557,1560,1562,1567,1569,1574],{"type":27,"tag":1509,"props":1558,"children":1559},{"disabled":22,"type":1511},[],{"type":32,"value":1561}," ",{"type":27,"tag":103,"props":1563,"children":1565},{"className":1564},[],[1566],{"type":32,"value":838},{"type":32,"value":1568}," provides complete resource replacement, while ",{"type":27,"tag":103,"props":1570,"children":1572},{"className":1571},[],[1573],{"type":32,"value":538},{"type":32,"value":1575}," handles partial updates.",{"type":27,"tag":72,"props":1577,"children":1579},{"className":1578},[1506],[1580,1583,1584,1589],{"type":27,"tag":1509,"props":1581,"children":1582},{"disabled":22,"type":1511},[],{"type":32,"value":1561},{"type":27,"tag":103,"props":1585,"children":1587},{"className":1586},[],[1588],{"type":32,"value":538},{"type":32,"value":1590}," operations distinguish between idempotent field sets and non-idempotent operations.",{"type":27,"tag":72,"props":1592,"children":1594},{"className":1593},[1506],[1595,1598,1600,1605],{"type":27,"tag":1509,"props":1596,"children":1597},{"disabled":22,"type":1511},[],{"type":32,"value":1599}," Errors conform to RFC 9457 Problem Details (",{"type":27,"tag":103,"props":1601,"children":1603},{"className":1602},[],[1604],{"type":32,"value":1006},{"type":32,"value":882},{"type":27,"tag":72,"props":1607,"children":1609},{"className":1608},[1506],[1610,1613],{"type":27,"tag":1509,"props":1611,"children":1612},{"disabled":22,"type":1511},[],{"type":32,"value":1614}," Large collections use cursor-based pagination with indexed keys.",{"type":27,"tag":72,"props":1616,"children":1618},{"className":1617},[1506],[1619,1622,1624,1629],{"type":27,"tag":1509,"props":1620,"children":1621},{"disabled":22,"type":1511},[],{"type":32,"value":1623}," Rate limits return HTTP 429 with informative ",{"type":27,"tag":103,"props":1625,"children":1627},{"className":1626},[],[1628],{"type":32,"value":965},{"type":32,"value":1630}," headers.",{"type":27,"tag":28,"props":1632,"children":1633},{},[1634,1636,1643,1645,1651],{"type":32,"value":1635},"To see how backend services coordinate relational and document databases behind these endpoints, read our deep dive on ",{"type":27,"tag":1637,"props":1638,"children":1640},"a",{"href":1639},"\u002Ftech-guides\u002Fsql-vs-nosql-database-guide",[1641],{"type":32,"value":1642},"SQL vs. NoSQL Architecture",{"type":32,"value":1644},". For high-level system design patterns, explore our ",{"type":27,"tag":1637,"props":1646,"children":1648},{"href":1647},"\u002Fresume-interview\u002Fsystem-design-interview-framework",[1649],{"type":32,"value":1650},"System Design Interview Framework",{"type":32,"value":176},{"type":27,"tag":52,"props":1653,"children":1654},{},[],{"type":27,"tag":56,"props":1656,"children":1658},{"id":1657},"primary-references-and-official-standards",[1659],{"type":32,"value":1660},"Primary References and Official Standards",{"type":27,"tag":185,"props":1662,"children":1663},{},[1664,1682,1705,1726],{"type":27,"tag":72,"props":1665,"children":1666},{},[1667,1672,1674,1680],{"type":27,"tag":35,"props":1668,"children":1669},{},[1670],{"type":32,"value":1671},"Fielding, Roy Thomas.",{"type":32,"value":1673}," (2000). ",{"type":27,"tag":1675,"props":1676,"children":1677},"em",{},[1678],{"type":32,"value":1679},"Architectural Styles and the Design of Network-based Software Architectures.",{"type":32,"value":1681}," Doctoral Dissertation, University of California, Irvine.",{"type":27,"tag":72,"props":1683,"children":1684},{},[1685,1690,1691,1696,1697],{"type":27,"tag":35,"props":1686,"children":1687},{},[1688],{"type":32,"value":1689},"Internet Engineering Task Force (IETF).",{"type":32,"value":1561},{"type":27,"tag":1675,"props":1692,"children":1693},{},[1694],{"type":32,"value":1695},"RFC 9457: Problem Details for HTTP APIs (Obsoleting RFC 7807).",{"type":32,"value":1561},{"type":27,"tag":1637,"props":1698,"children":1702},{"href":1699,"rel":1700},"https:\u002F\u002Fwww.rfc-editor.org\u002Frfc\u002Frfc9457",[1701],"nofollow",[1703],{"type":32,"value":1704},"rfc-editor.org\u002Frfc\u002Frfc9457",{"type":27,"tag":72,"props":1706,"children":1707},{},[1708,1712,1713,1718,1719],{"type":27,"tag":35,"props":1709,"children":1710},{},[1711],{"type":32,"value":1689},{"type":32,"value":1561},{"type":27,"tag":1675,"props":1714,"children":1715},{},[1716],{"type":32,"value":1717},"RFC 7396: JSON Merge Patch.",{"type":32,"value":1561},{"type":27,"tag":1637,"props":1720,"children":1723},{"href":1721,"rel":1722},"https:\u002F\u002Fwww.rfc-editor.org\u002Frfc\u002Frfc7396",[1701],[1724],{"type":32,"value":1725},"rfc-editor.org\u002Frfc\u002Frfc7396",{"type":27,"tag":72,"props":1727,"children":1728},{},[1729,1733,1734,1739,1740],{"type":27,"tag":35,"props":1730,"children":1731},{},[1732],{"type":32,"value":1689},{"type":32,"value":1561},{"type":27,"tag":1675,"props":1735,"children":1736},{},[1737],{"type":32,"value":1738},"RFC 9110: HTTP Semantics.",{"type":32,"value":1561},{"type":27,"tag":1637,"props":1741,"children":1744},{"href":1742,"rel":1743},"https:\u002F\u002Fwww.rfc-editor.org\u002Frfc\u002Frfc9110",[1701],[1745],{"type":32,"value":1746},"rfc-editor.org\u002Frfc\u002Frfc9110",{"type":27,"tag":1748,"props":1749,"children":1750},"style",{},[1751],{"type":32,"value":1752},"html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}",{"title":7,"searchDepth":604,"depth":604,"links":1754},[1755,1756,1759,1762,1766,1771,1772],{"id":58,"depth":604,"text":61},{"id":154,"depth":604,"text":157,"children":1757},[1758],{"id":180,"depth":709,"text":183},{"id":468,"depth":604,"text":471,"children":1760},[1761],{"id":524,"depth":709,"text":527},{"id":803,"depth":604,"text":806,"children":1763},[1764,1765],{"id":809,"depth":709,"text":812},{"id":980,"depth":709,"text":983},{"id":1203,"depth":604,"text":1206,"children":1767},[1768,1769,1770],{"id":1209,"depth":709,"text":1212},{"id":1372,"depth":709,"text":1375},{"id":1430,"depth":709,"text":1433},{"id":1489,"depth":604,"text":1492},{"id":1657,"depth":604,"text":1660},"markdown","content:tech-guides:rest-apis-explained.md","content","tech-guides\u002Frest-apis-explained.md","tech-guides\u002Frest-apis-explained","md",{"_path":4,"_dir":5,"_draft":6,"_partial":6,"_locale":7,"title":8,"description":9,"category":5,"categoryLabel":10,"publishedAt":11,"updatedAt":12,"author":1780,"tags":1781,"featured":22,"body":1782,"_type":1773,"_id":1774,"_source":1775,"_file":1776,"_stem":1777,"_extension":1778},{"name":14,"role":15},[17,18,19,20,21],{"type":24,"children":1783,"toc":3177},[1784,1793,1797,1801,1804,1808,1812,1875,1878,1882,1896,1900,1971,2133,2136,2140,2154,2161,2180,2184,2199,2406,2409,2413,2417,2550,2554,2563,2573,2719,2723,2726,2730,2734,2738,2859,2863,2867,2910,2914,2918,2957,2960,2964,2968,3082,3096,3099,3103,3173],{"type":27,"tag":28,"props":1785,"children":1786},{},[1787,1788,1792],{"type":32,"value":33},{"type":27,"tag":35,"props":1789,"children":1790},{},[1791],{"type":32,"value":17},{"type":32,"value":40},{"type":27,"tag":28,"props":1794,"children":1795},{},[1796],{"type":32,"value":45},{"type":27,"tag":28,"props":1798,"children":1799},{},[1800],{"type":32,"value":50},{"type":27,"tag":52,"props":1802,"children":1803},{},[],{"type":27,"tag":56,"props":1805,"children":1806},{"id":58},[1807],{"type":32,"value":61},{"type":27,"tag":28,"props":1809,"children":1810},{},[1811],{"type":32,"value":66},{"type":27,"tag":68,"props":1813,"children":1814},{},[1815,1823,1831,1851,1859,1867],{"type":27,"tag":72,"props":1816,"children":1817},{},[1818,1822],{"type":27,"tag":35,"props":1819,"children":1820},{},[1821],{"type":32,"value":79},{"type":32,"value":81},{"type":27,"tag":72,"props":1824,"children":1825},{},[1826,1830],{"type":27,"tag":35,"props":1827,"children":1828},{},[1829],{"type":32,"value":89},{"type":32,"value":91},{"type":27,"tag":72,"props":1832,"children":1833},{},[1834,1838,1839,1844,1845,1850],{"type":27,"tag":35,"props":1835,"children":1836},{},[1837],{"type":32,"value":99},{"type":32,"value":101},{"type":27,"tag":103,"props":1840,"children":1842},{"className":1841},[],[1843],{"type":32,"value":108},{"type":32,"value":110},{"type":27,"tag":103,"props":1846,"children":1848},{"className":1847},[],[1849],{"type":32,"value":116},{"type":32,"value":118},{"type":27,"tag":72,"props":1852,"children":1853},{},[1854,1858],{"type":27,"tag":35,"props":1855,"children":1856},{},[1857],{"type":32,"value":126},{"type":32,"value":128},{"type":27,"tag":72,"props":1860,"children":1861},{},[1862,1866],{"type":27,"tag":35,"props":1863,"children":1864},{},[1865],{"type":32,"value":136},{"type":32,"value":138},{"type":27,"tag":72,"props":1868,"children":1869},{},[1870,1874],{"type":27,"tag":35,"props":1871,"children":1872},{},[1873],{"type":32,"value":146},{"type":32,"value":148},{"type":27,"tag":52,"props":1876,"children":1877},{},[],{"type":27,"tag":56,"props":1879,"children":1880},{"id":154},[1881],{"type":32,"value":157},{"type":27,"tag":28,"props":1883,"children":1884},{},[1885,1886,1890,1891,1895],{"type":32,"value":162},{"type":27,"tag":35,"props":1887,"children":1888},{},[1889],{"type":32,"value":167},{"type":32,"value":169},{"type":27,"tag":35,"props":1892,"children":1893},{},[1894],{"type":32,"value":174},{"type":32,"value":176},{"type":27,"tag":178,"props":1897,"children":1898},{"id":180},[1899],{"type":32,"value":183},{"type":27,"tag":185,"props":1901,"children":1902},{},[1903,1923,1943,1957],{"type":27,"tag":72,"props":1904,"children":1905},{},[1906,1910,1911,1916,1917,1922],{"type":27,"tag":35,"props":1907,"children":1908},{},[1909],{"type":32,"value":195},{"type":32,"value":197},{"type":27,"tag":103,"props":1912,"children":1914},{"className":1913},[],[1915],{"type":32,"value":203},{"type":32,"value":205},{"type":27,"tag":103,"props":1918,"children":1920},{"className":1919},[],[1921],{"type":32,"value":211},{"type":32,"value":176},{"type":27,"tag":72,"props":1924,"children":1925},{},[1926,1930,1931,1936,1937,1942],{"type":27,"tag":35,"props":1927,"children":1928},{},[1929],{"type":32,"value":220},{"type":32,"value":222},{"type":27,"tag":103,"props":1932,"children":1934},{"className":1933},[],[1935],{"type":32,"value":228},{"type":32,"value":230},{"type":27,"tag":103,"props":1938,"children":1940},{"className":1939},[],[1941],{"type":32,"value":236},{"type":32,"value":176},{"type":27,"tag":72,"props":1944,"children":1945},{},[1946,1950,1951,1956],{"type":27,"tag":35,"props":1947,"children":1948},{},[1949],{"type":32,"value":245},{"type":32,"value":247},{"type":27,"tag":103,"props":1952,"children":1954},{"className":1953},[],[1955],{"type":32,"value":253},{"type":32,"value":176},{"type":27,"tag":72,"props":1958,"children":1959},{},[1960,1964,1965,1970],{"type":27,"tag":35,"props":1961,"children":1962},{},[1963],{"type":32,"value":262},{"type":32,"value":264},{"type":27,"tag":103,"props":1966,"children":1968},{"className":1967},[],[1969],{"type":32,"value":270},{"type":32,"value":272},{"type":27,"tag":274,"props":1972,"children":1973},{},[1974,1992],{"type":27,"tag":278,"props":1975,"children":1976},{},[1977],{"type":27,"tag":282,"props":1978,"children":1979},{},[1980,1984,1988],{"type":27,"tag":286,"props":1981,"children":1982},{"align":288},[1983],{"type":32,"value":291},{"type":27,"tag":286,"props":1985,"children":1986},{"align":288},[1987],{"type":32,"value":296},{"type":27,"tag":286,"props":1989,"children":1990},{"align":288},[1991],{"type":32,"value":301},{"type":27,"tag":303,"props":1993,"children":1994},{},[1995,2018,2041,2064,2087,2110],{"type":27,"tag":282,"props":1996,"children":1997},{},[1998,2002,2010],{"type":27,"tag":310,"props":1999,"children":2000},{"align":288},[2001],{"type":32,"value":314},{"type":27,"tag":310,"props":2003,"children":2004},{"align":288},[2005],{"type":27,"tag":103,"props":2006,"children":2008},{"className":2007},[],[2009],{"type":32,"value":323},{"type":27,"tag":310,"props":2011,"children":2012},{"align":288},[2013],{"type":27,"tag":103,"props":2014,"children":2016},{"className":2015},[],[2017],{"type":32,"value":332},{"type":27,"tag":282,"props":2019,"children":2020},{},[2021,2025,2033],{"type":27,"tag":310,"props":2022,"children":2023},{"align":288},[2024],{"type":32,"value":340},{"type":27,"tag":310,"props":2026,"children":2027},{"align":288},[2028],{"type":27,"tag":103,"props":2029,"children":2031},{"className":2030},[],[2032],{"type":32,"value":349},{"type":27,"tag":310,"props":2034,"children":2035},{"align":288},[2036],{"type":27,"tag":103,"props":2037,"children":2039},{"className":2038},[],[2040],{"type":32,"value":358},{"type":27,"tag":282,"props":2042,"children":2043},{},[2044,2048,2056],{"type":27,"tag":310,"props":2045,"children":2046},{"align":288},[2047],{"type":32,"value":366},{"type":27,"tag":310,"props":2049,"children":2050},{"align":288},[2051],{"type":27,"tag":103,"props":2052,"children":2054},{"className":2053},[],[2055],{"type":32,"value":375},{"type":27,"tag":310,"props":2057,"children":2058},{"align":288},[2059],{"type":27,"tag":103,"props":2060,"children":2062},{"className":2061},[],[2063],{"type":32,"value":384},{"type":27,"tag":282,"props":2065,"children":2066},{},[2067,2071,2079],{"type":27,"tag":310,"props":2068,"children":2069},{"align":288},[2070],{"type":32,"value":392},{"type":27,"tag":310,"props":2072,"children":2073},{"align":288},[2074],{"type":27,"tag":103,"props":2075,"children":2077},{"className":2076},[],[2078],{"type":32,"value":401},{"type":27,"tag":310,"props":2080,"children":2081},{"align":288},[2082],{"type":27,"tag":103,"props":2083,"children":2085},{"className":2084},[],[2086],{"type":32,"value":410},{"type":27,"tag":282,"props":2088,"children":2089},{},[2090,2094,2102],{"type":27,"tag":310,"props":2091,"children":2092},{"align":288},[2093],{"type":32,"value":418},{"type":27,"tag":310,"props":2095,"children":2096},{"align":288},[2097],{"type":27,"tag":103,"props":2098,"children":2100},{"className":2099},[],[2101],{"type":32,"value":427},{"type":27,"tag":310,"props":2103,"children":2104},{"align":288},[2105],{"type":27,"tag":103,"props":2106,"children":2108},{"className":2107},[],[2109],{"type":32,"value":436},{"type":27,"tag":282,"props":2111,"children":2112},{},[2113,2117,2125],{"type":27,"tag":310,"props":2114,"children":2115},{"align":288},[2116],{"type":32,"value":444},{"type":27,"tag":310,"props":2118,"children":2119},{"align":288},[2120],{"type":27,"tag":103,"props":2121,"children":2123},{"className":2122},[],[2124],{"type":32,"value":453},{"type":27,"tag":310,"props":2126,"children":2127},{"align":288},[2128],{"type":27,"tag":103,"props":2129,"children":2131},{"className":2130},[],[2132],{"type":32,"value":462},{"type":27,"tag":52,"props":2134,"children":2135},{},[],{"type":27,"tag":56,"props":2137,"children":2138},{"id":468},[2139],{"type":32,"value":471},{"type":27,"tag":28,"props":2141,"children":2142},{},[2143,2144,2148,2149,2153],{"type":32,"value":476},{"type":27,"tag":35,"props":2145,"children":2146},{},[2147],{"type":32,"value":481},{"type":32,"value":110},{"type":27,"tag":35,"props":2150,"children":2151},{},[2152],{"type":32,"value":487},{"type":32,"value":489},{"type":27,"tag":491,"props":2155,"children":2156},{"code":493},[2157],{"type":27,"tag":103,"props":2158,"children":2159},{"__ignoreMap":7},[2160],{"type":32,"value":493},{"type":27,"tag":185,"props":2162,"children":2163},{},[2164,2172],{"type":27,"tag":72,"props":2165,"children":2166},{},[2167,2171],{"type":27,"tag":35,"props":2168,"children":2169},{},[2170],{"type":32,"value":509},{"type":32,"value":511},{"type":27,"tag":72,"props":2173,"children":2174},{},[2175,2179],{"type":27,"tag":35,"props":2176,"children":2177},{},[2178],{"type":32,"value":519},{"type":32,"value":521},{"type":27,"tag":178,"props":2181,"children":2182},{"id":524},[2183],{"type":32,"value":527},{"type":27,"tag":28,"props":2185,"children":2186},{},[2187,2188,2193,2194,2198],{"type":32,"value":532},{"type":27,"tag":103,"props":2189,"children":2191},{"className":2190},[],[2192],{"type":32,"value":538},{"type":32,"value":540},{"type":27,"tag":35,"props":2195,"children":2196},{},[2197],{"type":32,"value":545},{"type":32,"value":547},{"type":27,"tag":68,"props":2200,"children":2201},{},[2202,2286],{"type":27,"tag":72,"props":2203,"children":2204},{},[2205,2209,2212,2213,2277,2280,2281,2285],{"type":27,"tag":35,"props":2206,"children":2207},{},[2208],{"type":32,"value":558},{"type":27,"tag":560,"props":2210,"children":2211},{},[],{"type":32,"value":564},{"type":27,"tag":491,"props":2214,"children":2215},{"code":567,"language":568,"meta":7,"className":569,"style":7},[2216],{"type":27,"tag":103,"props":2217,"children":2218},{"__ignoreMap":7},[2219,2238],{"type":27,"tag":575,"props":2220,"children":2221},{"class":577,"line":578},[2222,2226,2230,2234],{"type":27,"tag":575,"props":2223,"children":2224},{"style":582},[2225],{"type":32,"value":585},{"type":27,"tag":575,"props":2227,"children":2228},{"style":588},[2229],{"type":32,"value":591},{"type":27,"tag":575,"props":2231,"children":2232},{"style":582},[2233],{"type":32,"value":596},{"type":27,"tag":575,"props":2235,"children":2236},{"style":588},[2237],{"type":32,"value":601},{"type":27,"tag":575,"props":2239,"children":2240},{"class":577,"line":604},[2241,2245,2249,2253,2257,2261,2265,2269,2273],{"type":27,"tag":575,"props":2242,"children":2243},{"style":582},[2244],{"type":32,"value":610},{"type":27,"tag":575,"props":2246,"children":2247},{"style":588},[2248],{"type":32,"value":615},{"type":27,"tag":575,"props":2250,"children":2251},{"style":582},[2252],{"type":32,"value":620},{"type":27,"tag":575,"props":2254,"children":2255},{"style":623},[2256],{"type":32,"value":626},{"type":27,"tag":575,"props":2258,"children":2259},{"style":582},[2260],{"type":32,"value":631},{"type":27,"tag":575,"props":2262,"children":2263},{"style":588},[2264],{"type":32,"value":636},{"type":27,"tag":575,"props":2266,"children":2267},{"style":582},[2268],{"type":32,"value":620},{"type":27,"tag":575,"props":2270,"children":2271},{"style":588},[2272],{"type":32,"value":645},{"type":27,"tag":575,"props":2274,"children":2275},{"style":582},[2276],{"type":32,"value":650},{"type":27,"tag":560,"props":2278,"children":2279},{},[],{"type":32,"value":655},{"type":27,"tag":35,"props":2282,"children":2283},{},[2284],{"type":32,"value":487},{"type":32,"value":176},{"type":27,"tag":72,"props":2287,"children":2288},{},[2289,2293,2296,2297,2391,2394,2395,2400,2401,2405],{"type":27,"tag":35,"props":2290,"children":2291},{},[2292],{"type":32,"value":668},{"type":27,"tag":560,"props":2294,"children":2295},{},[],{"type":32,"value":564},{"type":27,"tag":491,"props":2298,"children":2299},{"code":675,"language":568,"meta":7,"className":569,"style":7},[2300],{"type":27,"tag":103,"props":2301,"children":2302},{"__ignoreMap":7},[2303,2322,2329,2384],{"type":27,"tag":575,"props":2304,"children":2305},{"class":577,"line":578},[2306,2310,2314,2318],{"type":27,"tag":575,"props":2307,"children":2308},{"style":582},[2309],{"type":32,"value":585},{"type":27,"tag":575,"props":2311,"children":2312},{"style":588},[2313],{"type":32,"value":591},{"type":27,"tag":575,"props":2315,"children":2316},{"style":582},[2317],{"type":32,"value":596},{"type":27,"tag":575,"props":2319,"children":2320},{"style":588},[2321],{"type":32,"value":601},{"type":27,"tag":575,"props":2323,"children":2324},{"class":577,"line":604},[2325],{"type":27,"tag":575,"props":2326,"children":2327},{"style":582},[2328],{"type":32,"value":706},{"type":27,"tag":575,"props":2330,"children":2331},{"class":577,"line":709},[2332,2336,2340,2344,2348,2352,2356,2360,2364,2368,2372,2376,2380],{"type":27,"tag":575,"props":2333,"children":2334},{"style":582},[2335],{"type":32,"value":715},{"type":27,"tag":575,"props":2337,"children":2338},{"style":588},[2339],{"type":32,"value":720},{"type":27,"tag":575,"props":2341,"children":2342},{"style":582},[2343],{"type":32,"value":620},{"type":27,"tag":575,"props":2345,"children":2346},{"style":623},[2347],{"type":32,"value":729},{"type":27,"tag":575,"props":2349,"children":2350},{"style":582},[2351],{"type":32,"value":631},{"type":27,"tag":575,"props":2353,"children":2354},{"style":588},[2355],{"type":32,"value":738},{"type":27,"tag":575,"props":2357,"children":2358},{"style":582},[2359],{"type":32,"value":620},{"type":27,"tag":575,"props":2361,"children":2362},{"style":623},[2363],{"type":32,"value":747},{"type":27,"tag":575,"props":2365,"children":2366},{"style":582},[2367],{"type":32,"value":631},{"type":27,"tag":575,"props":2369,"children":2370},{"style":588},[2371],{"type":32,"value":756},{"type":27,"tag":575,"props":2373,"children":2374},{"style":582},[2375],{"type":32,"value":620},{"type":27,"tag":575,"props":2377,"children":2378},{"style":623},[2379],{"type":32,"value":765},{"type":27,"tag":575,"props":2381,"children":2382},{"style":582},[2383],{"type":32,"value":650},{"type":27,"tag":575,"props":2385,"children":2386},{"class":577,"line":772},[2387],{"type":27,"tag":575,"props":2388,"children":2389},{"style":582},[2390],{"type":32,"value":778},{"type":27,"tag":560,"props":2392,"children":2393},{},[],{"type":32,"value":783},{"type":27,"tag":103,"props":2396,"children":2398},{"className":2397},[],[2399],{"type":32,"value":789},{"type":32,"value":791},{"type":27,"tag":35,"props":2402,"children":2403},{},[2404],{"type":32,"value":796},{"type":32,"value":176},{"type":27,"tag":52,"props":2407,"children":2408},{},[],{"type":27,"tag":56,"props":2410,"children":2411},{"id":803},[2412],{"type":32,"value":806},{"type":27,"tag":178,"props":2414,"children":2415},{"id":809},[2416],{"type":32,"value":812},{"type":27,"tag":185,"props":2418,"children":2419},{},[2420,2446,2460,2474,2482,2490,2498,2506,2514,2528,2542],{"type":27,"tag":72,"props":2421,"children":2422},{},[2423,2427,2428,2433,2434,2439,2440,2445],{"type":27,"tag":35,"props":2424,"children":2425},{},[2426],{"type":32,"value":823},{"type":32,"value":825},{"type":27,"tag":103,"props":2429,"children":2431},{"className":2430},[],[2432],{"type":32,"value":831},{"type":32,"value":631},{"type":27,"tag":103,"props":2435,"children":2437},{"className":2436},[],[2438],{"type":32,"value":838},{"type":32,"value":840},{"type":27,"tag":103,"props":2441,"children":2443},{"className":2442},[],[2444],{"type":32,"value":538},{"type":32,"value":176},{"type":27,"tag":72,"props":2447,"children":2448},{},[2449,2453,2454,2459],{"type":27,"tag":35,"props":2450,"children":2451},{},[2452],{"type":32,"value":854},{"type":32,"value":856},{"type":27,"tag":103,"props":2455,"children":2457},{"className":2456},[],[2458],{"type":32,"value":862},{"type":32,"value":864},{"type":27,"tag":72,"props":2461,"children":2462},{},[2463,2467,2468,2473],{"type":27,"tag":35,"props":2464,"children":2465},{},[2466],{"type":32,"value":872},{"type":32,"value":874},{"type":27,"tag":103,"props":2469,"children":2471},{"className":2470},[],[2472],{"type":32,"value":880},{"type":32,"value":882},{"type":27,"tag":72,"props":2475,"children":2476},{},[2477,2481],{"type":27,"tag":35,"props":2478,"children":2479},{},[2480],{"type":32,"value":890},{"type":32,"value":892},{"type":27,"tag":72,"props":2483,"children":2484},{},[2485,2489],{"type":27,"tag":35,"props":2486,"children":2487},{},[2488],{"type":32,"value":900},{"type":32,"value":902},{"type":27,"tag":72,"props":2491,"children":2492},{},[2493,2497],{"type":27,"tag":35,"props":2494,"children":2495},{},[2496],{"type":32,"value":910},{"type":32,"value":912},{"type":27,"tag":72,"props":2499,"children":2500},{},[2501,2505],{"type":27,"tag":35,"props":2502,"children":2503},{},[2504],{"type":32,"value":920},{"type":32,"value":922},{"type":27,"tag":72,"props":2507,"children":2508},{},[2509,2513],{"type":27,"tag":35,"props":2510,"children":2511},{},[2512],{"type":32,"value":930},{"type":32,"value":932},{"type":27,"tag":72,"props":2515,"children":2516},{},[2517,2521,2522,2527],{"type":27,"tag":35,"props":2518,"children":2519},{},[2520],{"type":32,"value":940},{"type":32,"value":942},{"type":27,"tag":103,"props":2523,"children":2525},{"className":2524},[],[2526],{"type":32,"value":948},{"type":32,"value":882},{"type":27,"tag":72,"props":2529,"children":2530},{},[2531,2535,2536,2541],{"type":27,"tag":35,"props":2532,"children":2533},{},[2534],{"type":32,"value":957},{"type":32,"value":959},{"type":27,"tag":103,"props":2537,"children":2539},{"className":2538},[],[2540],{"type":32,"value":965},{"type":32,"value":967},{"type":27,"tag":72,"props":2543,"children":2544},{},[2545,2549],{"type":27,"tag":35,"props":2546,"children":2547},{},[2548],{"type":32,"value":975},{"type":32,"value":977},{"type":27,"tag":178,"props":2551,"children":2552},{"id":980},[2553],{"type":32,"value":983},{"type":27,"tag":28,"props":2555,"children":2556},{},[2557,2558,2562],{"type":32,"value":988},{"type":27,"tag":35,"props":2559,"children":2560},{},[2561],{"type":32,"value":993},{"type":32,"value":995},{"type":27,"tag":28,"props":2564,"children":2565},{},[2566,2567,2572],{"type":32,"value":1000},{"type":27,"tag":103,"props":2568,"children":2570},{"className":2569},[],[2571],{"type":32,"value":1006},{"type":32,"value":1008},{"type":27,"tag":491,"props":2574,"children":2575},{"code":1011,"language":1012,"meta":7,"className":1013,"style":7},[2576],{"type":27,"tag":103,"props":2577,"children":2578},{"__ignoreMap":7},[2579,2586,2593,2600,2607,2614,2621,2628,2635,2642,2649,2656,2663,2670,2677,2684,2691,2698,2705,2712],{"type":27,"tag":575,"props":2580,"children":2581},{"class":577,"line":578},[2582],{"type":27,"tag":575,"props":2583,"children":2584},{},[2585],{"type":32,"value":1025},{"type":27,"tag":575,"props":2587,"children":2588},{"class":577,"line":604},[2589],{"type":27,"tag":575,"props":2590,"children":2591},{},[2592],{"type":32,"value":1033},{"type":27,"tag":575,"props":2594,"children":2595},{"class":577,"line":709},[2596],{"type":27,"tag":575,"props":2597,"children":2598},{"emptyLinePlaceholder":22},[2599],{"type":32,"value":1041},{"type":27,"tag":575,"props":2601,"children":2602},{"class":577,"line":772},[2603],{"type":27,"tag":575,"props":2604,"children":2605},{},[2606],{"type":32,"value":1049},{"type":27,"tag":575,"props":2608,"children":2609},{"class":577,"line":1052},[2610],{"type":27,"tag":575,"props":2611,"children":2612},{},[2613],{"type":32,"value":1058},{"type":27,"tag":575,"props":2615,"children":2616},{"class":577,"line":1061},[2617],{"type":27,"tag":575,"props":2618,"children":2619},{},[2620],{"type":32,"value":1067},{"type":27,"tag":575,"props":2622,"children":2623},{"class":577,"line":1070},[2624],{"type":27,"tag":575,"props":2625,"children":2626},{},[2627],{"type":32,"value":1076},{"type":27,"tag":575,"props":2629,"children":2630},{"class":577,"line":1079},[2631],{"type":27,"tag":575,"props":2632,"children":2633},{},[2634],{"type":32,"value":1085},{"type":27,"tag":575,"props":2636,"children":2637},{"class":577,"line":1088},[2638],{"type":27,"tag":575,"props":2639,"children":2640},{},[2641],{"type":32,"value":1094},{"type":27,"tag":575,"props":2643,"children":2644},{"class":577,"line":1097},[2645],{"type":27,"tag":575,"props":2646,"children":2647},{},[2648],{"type":32,"value":1103},{"type":27,"tag":575,"props":2650,"children":2651},{"class":577,"line":1106},[2652],{"type":27,"tag":575,"props":2653,"children":2654},{},[2655],{"type":32,"value":1112},{"type":27,"tag":575,"props":2657,"children":2658},{"class":577,"line":1115},[2659],{"type":27,"tag":575,"props":2660,"children":2661},{},[2662],{"type":32,"value":1121},{"type":27,"tag":575,"props":2664,"children":2665},{"class":577,"line":1124},[2666],{"type":27,"tag":575,"props":2667,"children":2668},{},[2669],{"type":32,"value":1130},{"type":27,"tag":575,"props":2671,"children":2672},{"class":577,"line":1133},[2673],{"type":27,"tag":575,"props":2674,"children":2675},{},[2676],{"type":32,"value":1139},{"type":27,"tag":575,"props":2678,"children":2679},{"class":577,"line":1142},[2680],{"type":27,"tag":575,"props":2681,"children":2682},{},[2683],{"type":32,"value":1112},{"type":27,"tag":575,"props":2685,"children":2686},{"class":577,"line":1150},[2687],{"type":27,"tag":575,"props":2688,"children":2689},{},[2690],{"type":32,"value":1156},{"type":27,"tag":575,"props":2692,"children":2693},{"class":577,"line":1159},[2694],{"type":27,"tag":575,"props":2695,"children":2696},{},[2697],{"type":32,"value":1165},{"type":27,"tag":575,"props":2699,"children":2700},{"class":577,"line":1168},[2701],{"type":27,"tag":575,"props":2702,"children":2703},{},[2704],{"type":32,"value":1174},{"type":27,"tag":575,"props":2706,"children":2707},{"class":577,"line":1177},[2708],{"type":27,"tag":575,"props":2709,"children":2710},{},[2711],{"type":32,"value":1183},{"type":27,"tag":575,"props":2713,"children":2714},{"class":577,"line":1186},[2715],{"type":27,"tag":575,"props":2716,"children":2717},{},[2718],{"type":32,"value":1192},{"type":27,"tag":28,"props":2720,"children":2721},{},[2722],{"type":32,"value":1197},{"type":27,"tag":52,"props":2724,"children":2725},{},[],{"type":27,"tag":56,"props":2727,"children":2728},{"id":1203},[2729],{"type":32,"value":1206},{"type":27,"tag":178,"props":2731,"children":2732},{"id":1209},[2733],{"type":32,"value":1212},{"type":27,"tag":28,"props":2735,"children":2736},{},[2737],{"type":32,"value":1217},{"type":27,"tag":185,"props":2739,"children":2740},{},[2741,2767],{"type":27,"tag":72,"props":2742,"children":2743},{},[2744,2754,2755,2760,2761,2766],{"type":27,"tag":35,"props":2745,"children":2746},{},[2747,2748,2753],{"type":32,"value":1228},{"type":27,"tag":103,"props":2749,"children":2751},{"className":2750},[],[2752],{"type":32,"value":1234},{"type":32,"value":1236},{"type":32,"value":1238},{"type":27,"tag":103,"props":2756,"children":2758},{"className":2757},[],[2759],{"type":32,"value":1244},{"type":32,"value":110},{"type":27,"tag":103,"props":2762,"children":2764},{"className":2763},[],[2765],{"type":32,"value":1251},{"type":32,"value":1253},{"type":27,"tag":72,"props":2768,"children":2769},{},[2770,2780,2781,2786,2787,2792,2793,2858],{"type":27,"tag":35,"props":2771,"children":2772},{},[2773,2774,2779],{"type":32,"value":1261},{"type":27,"tag":103,"props":2775,"children":2777},{"className":2776},[],[2778],{"type":32,"value":1267},{"type":32,"value":1236},{"type":32,"value":1270},{"type":27,"tag":103,"props":2782,"children":2784},{"className":2783},[],[2785],{"type":32,"value":1276},{"type":32,"value":230},{"type":27,"tag":103,"props":2788,"children":2790},{"className":2789},[],[2791],{"type":32,"value":1283},{"type":32,"value":1285},{"type":27,"tag":491,"props":2794,"children":2795},{"code":1288,"language":1289,"meta":7,"className":1290,"style":7},[2796],{"type":27,"tag":103,"props":2797,"children":2798},{"__ignoreMap":7},[2799],{"type":27,"tag":575,"props":2800,"children":2801},{"class":577,"line":578},[2802,2806,2810,2814,2818,2822,2826,2830,2834,2838,2842,2846,2850,2854],{"type":27,"tag":575,"props":2803,"children":2804},{"style":1300},[2805],{"type":32,"value":1303},{"type":27,"tag":575,"props":2807,"children":2808},{"style":1300},[2809],{"type":32,"value":1308},{"type":27,"tag":575,"props":2811,"children":2812},{"style":1300},[2813],{"type":32,"value":1313},{"type":27,"tag":575,"props":2815,"children":2816},{"style":582},[2817],{"type":32,"value":1318},{"type":27,"tag":575,"props":2819,"children":2820},{"style":1300},[2821],{"type":32,"value":1323},{"type":27,"tag":575,"props":2823,"children":2824},{"style":582},[2825],{"type":32,"value":1328},{"type":27,"tag":575,"props":2827,"children":2828},{"style":1300},[2829],{"type":32,"value":1333},{"type":27,"tag":575,"props":2831,"children":2832},{"style":623},[2833],{"type":32,"value":1338},{"type":27,"tag":575,"props":2835,"children":2836},{"style":1300},[2837],{"type":32,"value":1343},{"type":27,"tag":575,"props":2839,"children":2840},{"style":582},[2841],{"type":32,"value":1328},{"type":27,"tag":575,"props":2843,"children":2844},{"style":1300},[2845],{"type":32,"value":1352},{"type":27,"tag":575,"props":2847,"children":2848},{"style":1300},[2849],{"type":32,"value":1357},{"type":27,"tag":575,"props":2851,"children":2852},{"style":588},[2853],{"type":32,"value":1362},{"type":27,"tag":575,"props":2855,"children":2856},{"style":582},[2857],{"type":32,"value":1367},{"type":32,"value":1369},{"type":27,"tag":178,"props":2860,"children":2861},{"id":1372},[2862],{"type":32,"value":1375},{"type":27,"tag":28,"props":2864,"children":2865},{},[2866],{"type":32,"value":1380},{"type":27,"tag":185,"props":2868,"children":2869},{},[2870,2890],{"type":27,"tag":72,"props":2871,"children":2872},{},[2873,2877],{"type":27,"tag":35,"props":2874,"children":2875},{},[2876],{"type":32,"value":1391},{"type":27,"tag":491,"props":2878,"children":2879},{"code":1394,"language":1012,"meta":7,"className":1013,"style":7},[2880],{"type":27,"tag":103,"props":2881,"children":2882},{"__ignoreMap":7},[2883],{"type":27,"tag":575,"props":2884,"children":2885},{"class":577,"line":578},[2886],{"type":27,"tag":575,"props":2887,"children":2888},{},[2889],{"type":32,"value":1394},{"type":27,"tag":72,"props":2891,"children":2892},{},[2893,2897],{"type":27,"tag":35,"props":2894,"children":2895},{},[2896],{"type":32,"value":1413},{"type":27,"tag":491,"props":2898,"children":2899},{"code":1416,"language":1012,"meta":7,"className":1013,"style":7},[2900],{"type":27,"tag":103,"props":2901,"children":2902},{"__ignoreMap":7},[2903],{"type":27,"tag":575,"props":2904,"children":2905},{"class":577,"line":578},[2906],{"type":27,"tag":575,"props":2907,"children":2908},{},[2909],{"type":32,"value":1416},{"type":27,"tag":178,"props":2911,"children":2912},{"id":1430},[2913],{"type":32,"value":1433},{"type":27,"tag":28,"props":2915,"children":2916},{},[2917],{"type":32,"value":1438},{"type":27,"tag":68,"props":2919,"children":2920},{},[2921,2936],{"type":27,"tag":72,"props":2922,"children":2923},{},[2924,2928,2935],{"type":27,"tag":35,"props":2925,"children":2926},{},[2927],{"type":32,"value":1449},{"type":27,"tag":491,"props":2929,"children":2930},{"code":1452},[2931],{"type":27,"tag":103,"props":2932,"children":2933},{"__ignoreMap":7},[2934],{"type":32,"value":1452},{"type":32,"value":1459},{"type":27,"tag":72,"props":2937,"children":2938},{},[2939,2943,2956],{"type":27,"tag":35,"props":2940,"children":2941},{},[2942],{"type":32,"value":1467},{"type":27,"tag":491,"props":2944,"children":2945},{"code":1470,"language":1012,"meta":7,"className":1013,"style":7},[2946],{"type":27,"tag":103,"props":2947,"children":2948},{"__ignoreMap":7},[2949],{"type":27,"tag":575,"props":2950,"children":2951},{"class":577,"line":578},[2952],{"type":27,"tag":575,"props":2953,"children":2954},{},[2955],{"type":32,"value":1470},{"type":32,"value":1483},{"type":27,"tag":52,"props":2958,"children":2959},{},[],{"type":27,"tag":56,"props":2961,"children":2962},{"id":1489},[2963],{"type":32,"value":1492},{"type":27,"tag":28,"props":2965,"children":2966},{},[2967],{"type":32,"value":1497},{"type":27,"tag":185,"props":2969,"children":2971},{"className":2970},[1501],[2972,2992,3012,3032,3046,3060,3068],{"type":27,"tag":72,"props":2973,"children":2975},{"className":2974},[1506],[2976,2979,2980,2985,2986,2991],{"type":27,"tag":1509,"props":2977,"children":2978},{"disabled":22,"type":1511},[],{"type":32,"value":1514},{"type":27,"tag":103,"props":2981,"children":2983},{"className":2982},[],[2984],{"type":32,"value":1520},{"type":32,"value":1522},{"type":27,"tag":103,"props":2987,"children":2989},{"className":2988},[],[2990],{"type":32,"value":1528},{"type":32,"value":882},{"type":27,"tag":72,"props":2993,"children":2995},{"className":2994},[1506],[2996,2999,3000,3005,3006,3011],{"type":27,"tag":1509,"props":2997,"children":2998},{"disabled":22,"type":1511},[],{"type":32,"value":1538},{"type":27,"tag":103,"props":3001,"children":3003},{"className":3002},[],[3004],{"type":32,"value":831},{"type":32,"value":631},{"type":27,"tag":103,"props":3007,"children":3009},{"className":3008},[],[3010],{"type":32,"value":1550},{"type":32,"value":1552},{"type":27,"tag":72,"props":3013,"children":3015},{"className":3014},[1506],[3016,3019,3020,3025,3026,3031],{"type":27,"tag":1509,"props":3017,"children":3018},{"disabled":22,"type":1511},[],{"type":32,"value":1561},{"type":27,"tag":103,"props":3021,"children":3023},{"className":3022},[],[3024],{"type":32,"value":838},{"type":32,"value":1568},{"type":27,"tag":103,"props":3027,"children":3029},{"className":3028},[],[3030],{"type":32,"value":538},{"type":32,"value":1575},{"type":27,"tag":72,"props":3033,"children":3035},{"className":3034},[1506],[3036,3039,3040,3045],{"type":27,"tag":1509,"props":3037,"children":3038},{"disabled":22,"type":1511},[],{"type":32,"value":1561},{"type":27,"tag":103,"props":3041,"children":3043},{"className":3042},[],[3044],{"type":32,"value":538},{"type":32,"value":1590},{"type":27,"tag":72,"props":3047,"children":3049},{"className":3048},[1506],[3050,3053,3054,3059],{"type":27,"tag":1509,"props":3051,"children":3052},{"disabled":22,"type":1511},[],{"type":32,"value":1599},{"type":27,"tag":103,"props":3055,"children":3057},{"className":3056},[],[3058],{"type":32,"value":1006},{"type":32,"value":882},{"type":27,"tag":72,"props":3061,"children":3063},{"className":3062},[1506],[3064,3067],{"type":27,"tag":1509,"props":3065,"children":3066},{"disabled":22,"type":1511},[],{"type":32,"value":1614},{"type":27,"tag":72,"props":3069,"children":3071},{"className":3070},[1506],[3072,3075,3076,3081],{"type":27,"tag":1509,"props":3073,"children":3074},{"disabled":22,"type":1511},[],{"type":32,"value":1623},{"type":27,"tag":103,"props":3077,"children":3079},{"className":3078},[],[3080],{"type":32,"value":965},{"type":32,"value":1630},{"type":27,"tag":28,"props":3083,"children":3084},{},[3085,3086,3090,3091,3095],{"type":32,"value":1635},{"type":27,"tag":1637,"props":3087,"children":3088},{"href":1639},[3089],{"type":32,"value":1642},{"type":32,"value":1644},{"type":27,"tag":1637,"props":3092,"children":3093},{"href":1647},[3094],{"type":32,"value":1650},{"type":32,"value":176},{"type":27,"tag":52,"props":3097,"children":3098},{},[],{"type":27,"tag":56,"props":3100,"children":3101},{"id":1657},[3102],{"type":32,"value":1660},{"type":27,"tag":185,"props":3104,"children":3105},{},[3106,3119,3137,3155],{"type":27,"tag":72,"props":3107,"children":3108},{},[3109,3113,3114,3118],{"type":27,"tag":35,"props":3110,"children":3111},{},[3112],{"type":32,"value":1671},{"type":32,"value":1673},{"type":27,"tag":1675,"props":3115,"children":3116},{},[3117],{"type":32,"value":1679},{"type":32,"value":1681},{"type":27,"tag":72,"props":3120,"children":3121},{},[3122,3126,3127,3131,3132],{"type":27,"tag":35,"props":3123,"children":3124},{},[3125],{"type":32,"value":1689},{"type":32,"value":1561},{"type":27,"tag":1675,"props":3128,"children":3129},{},[3130],{"type":32,"value":1695},{"type":32,"value":1561},{"type":27,"tag":1637,"props":3133,"children":3135},{"href":1699,"rel":3134},[1701],[3136],{"type":32,"value":1704},{"type":27,"tag":72,"props":3138,"children":3139},{},[3140,3144,3145,3149,3150],{"type":27,"tag":35,"props":3141,"children":3142},{},[3143],{"type":32,"value":1689},{"type":32,"value":1561},{"type":27,"tag":1675,"props":3146,"children":3147},{},[3148],{"type":32,"value":1717},{"type":32,"value":1561},{"type":27,"tag":1637,"props":3151,"children":3153},{"href":1721,"rel":3152},[1701],[3154],{"type":32,"value":1725},{"type":27,"tag":72,"props":3156,"children":3157},{},[3158,3162,3163,3167,3168],{"type":27,"tag":35,"props":3159,"children":3160},{},[3161],{"type":32,"value":1689},{"type":32,"value":1561},{"type":27,"tag":1675,"props":3164,"children":3165},{},[3166],{"type":32,"value":1738},{"type":32,"value":1561},{"type":27,"tag":1637,"props":3169,"children":3171},{"href":1742,"rel":3170},[1701],[3172],{"type":32,"value":1746},{"type":27,"tag":1748,"props":3174,"children":3175},{},[3176],{"type":32,"value":1752},{"title":7,"searchDepth":604,"depth":604,"links":3178},[3179,3180,3183,3186,3190,3195,3196],{"id":58,"depth":604,"text":61},{"id":154,"depth":604,"text":157,"children":3181},[3182],{"id":180,"depth":709,"text":183},{"id":468,"depth":604,"text":471,"children":3184},[3185],{"id":524,"depth":709,"text":527},{"id":803,"depth":604,"text":806,"children":3187},[3188,3189],{"id":809,"depth":709,"text":812},{"id":980,"depth":709,"text":983},{"id":1203,"depth":604,"text":1206,"children":3191},[3192,3193,3194],{"id":1209,"depth":709,"text":1212},{"id":1372,"depth":709,"text":1375},{"id":1430,"depth":709,"text":1433},{"id":1489,"depth":604,"text":1492},{"id":1657,"depth":604,"text":1660},1793122080662]