[{"data":1,"prerenderedAt":1675},["ShallowReactive",2],{"navigation_docs_en":3,"-en-nexus-endpoints-rate-limiting":237,"-en-nexus-endpoints-rate-limiting-surround":1671},[4,15,69,122],{"title":5,"icon":6,"path":7,"stem":8,"children":9,"page":14},"Getting Started with Docs","i-lucide-home","/en/getting-started","en/1.getting-started",[10],{"title":11,"path":12,"stem":13,"icon":6},"Introduction","/en/getting-started/introduction","en/1.getting-started/1.introduction",false,{"title":16,"path":17,"stem":18,"children":19,"page":14},"owo-ui Components","/en/owo-ui-components","en/2.owo-ui-components",[20,23],{"title":11,"path":21,"stem":22,"icon":6},"/en/owo-ui-components/introduction","en/2.owo-ui-components/2.introduction",{"title":24,"icon":25,"path":26,"stem":27,"children":28,"page":14},"Components","i-lucide-layout","/en/owo-ui-components/components","en/2.owo-ui-components/3.components",[29,33,37,41,45,49,53,57,61,65],{"title":30,"path":31,"stem":32},"Button","/en/owo-ui-components/components/button","en/2.owo-ui-components/3.components/button",{"title":34,"path":35,"stem":36},"Checkbox","/en/owo-ui-components/components/checkbox","en/2.owo-ui-components/3.components/checkbox",{"title":38,"path":39,"stem":40},"Collapsible Container","/en/owo-ui-components/components/collapsible-container","en/2.owo-ui-components/3.components/collapsible-container",{"title":42,"path":43,"stem":44},"Dropdown","/en/owo-ui-components/components/dropdown","en/2.owo-ui-components/3.components/dropdown",{"title":46,"path":47,"stem":48},"Flow Layout","/en/owo-ui-components/components/flow-layout","en/2.owo-ui-components/3.components/flow-layout",{"title":50,"path":51,"stem":52},"Grid Layout","/en/owo-ui-components/components/grid-layout","en/2.owo-ui-components/3.components/grid-layout",{"title":54,"path":55,"stem":56},"Label","/en/owo-ui-components/components/label","en/2.owo-ui-components/3.components/label",{"title":58,"path":59,"stem":60},"Scroll Container","/en/owo-ui-components/components/scroll-container","en/2.owo-ui-components/3.components/scroll-container",{"title":62,"path":63,"stem":64},"Slider","/en/owo-ui-components/components/slider","en/2.owo-ui-components/3.components/slider",{"title":66,"path":67,"stem":68},"Templates","/en/owo-ui-components/components/templates","en/2.owo-ui-components/3.components/templates",{"title":70,"path":71,"stem":72,"children":73,"page":14},"Nexus","/en/nexus","en/3.nexus",[74,77,82],{"title":11,"path":75,"stem":76,"icon":6},"/en/nexus/introduction","en/3.nexus/2.introduction",{"title":78,"path":79,"stem":80,"icon":81},"Deployment","/en/nexus/deployment","en/3.nexus/3.deployment","i-lucide-rocket",{"title":83,"path":84,"stem":85,"children":86,"page":14},"Endpoints","/en/nexus/endpoints","en/3.nexus/endpoints",[87,91,95,99,102,106,110,114,118],{"title":88,"path":89,"stem":90},"Authentication","/en/nexus/endpoints/authentication","en/3.nexus/endpoints/1.authentication",{"title":92,"path":93,"stem":94},"Rate Limiting","/en/nexus/endpoints/rate-limiting","en/3.nexus/endpoints/2.rate-limiting",{"title":96,"path":97,"stem":98},"Error Handling","/en/nexus/endpoints/error-handling","en/3.nexus/endpoints/3.error-handling",{"title":83,"path":100,"stem":101},"/en/nexus/endpoints/_dir","en/3.nexus/endpoints/_dir",{"title":103,"path":104,"stem":105},"Album","/en/nexus/endpoints/albums","en/3.nexus/endpoints/albums",{"title":107,"path":108,"stem":109},"Blog","/en/nexus/endpoints/blog","en/3.nexus/endpoints/blog",{"title":111,"path":112,"stem":113},"Comments","/en/nexus/endpoints/comments","en/3.nexus/endpoints/comments",{"title":115,"path":116,"stem":117},"File Management","/en/nexus/endpoints/file-management","en/3.nexus/endpoints/file-management",{"title":119,"path":120,"stem":121},"Photo Management","/en/nexus/endpoints/photos","en/3.nexus/endpoints/photos",{"title":123,"icon":124,"path":125,"stem":126,"children":127,"page":14},"Tauri SQLite ORM","i-lucide-database","/en/tauri-sqlite-orm","en/4.tauri-sqlite-orm",[128,132,137,141,162,187,232],{"title":11,"path":129,"stem":130,"icon":131},"/en/tauri-sqlite-orm/introduction","en/4.tauri-sqlite-orm/1.introduction","i-lucide-book-open",{"title":133,"path":134,"stem":135,"icon":136},"Installation & Setup","/en/tauri-sqlite-orm/installation-and-setup","en/4.tauri-sqlite-orm/2.installation-and-setup","i-lucide-download",{"title":138,"path":139,"stem":140,"icon":81},"Your First Schema & Query","/en/tauri-sqlite-orm/your-first-schema-and-query","en/4.tauri-sqlite-orm/3.your-first-schema-and-query",{"title":142,"path":143,"stem":144,"children":145,"page":14},"Core Concepts","/en/tauri-sqlite-orm/core-concepts","en/4.tauri-sqlite-orm/4.core-concepts",[146,150,154,158],{"title":147,"path":148,"stem":149},"Defining Schemas","/en/tauri-sqlite-orm/core-concepts/defining-schemas","en/4.tauri-sqlite-orm/4.core-concepts/1.defining-schemas",{"title":151,"path":152,"stem":153},"Column Types & Modifiers","/en/tauri-sqlite-orm/core-concepts/column-types-and-modifiers","en/4.tauri-sqlite-orm/4.core-concepts/2.column-types-and-modifiers",{"title":155,"path":156,"stem":157},"The ORM Instance","/en/tauri-sqlite-orm/core-concepts/the-orm-instance","en/4.tauri-sqlite-orm/4.core-concepts/3.the-orm-instance",{"title":159,"path":160,"stem":161},"Migrations","/en/tauri-sqlite-orm/core-concepts/migrations","en/4.tauri-sqlite-orm/4.core-concepts/4.migrations",{"title":163,"path":164,"stem":165,"children":166,"page":14},"Querying Data","/en/tauri-sqlite-orm/querying-data","en/4.tauri-sqlite-orm/5.querying-data",[167,171,175,179,183],{"title":168,"path":169,"stem":170},"Select","/en/tauri-sqlite-orm/querying-data/selecting-data","en/4.tauri-sqlite-orm/5.querying-data/1.selecting-data",{"title":172,"path":173,"stem":174},"Insert","/en/tauri-sqlite-orm/querying-data/inserting-data","en/4.tauri-sqlite-orm/5.querying-data/2.inserting-data",{"title":176,"path":177,"stem":178},"Update","/en/tauri-sqlite-orm/querying-data/updating-data","en/4.tauri-sqlite-orm/5.querying-data/3.updating-data",{"title":180,"path":181,"stem":182},"Delete","/en/tauri-sqlite-orm/querying-data/deleting-data","en/4.tauri-sqlite-orm/5.querying-data/4.deleting-data",{"title":184,"path":185,"stem":186},"Conditions & Operators","/en/tauri-sqlite-orm/querying-data/conditions-and-operators","en/4.tauri-sqlite-orm/5.querying-data/5.conditions-and-operators",{"title":188,"path":189,"stem":190,"children":191,"page":14},"Advanced Topics","/en/tauri-sqlite-orm/advanced-topics","en/4.tauri-sqlite-orm/6.advanced-topics",[192,196,200,204,208,212,216,220,224,228],{"title":193,"path":194,"stem":195},"Relations","/en/tauri-sqlite-orm/advanced-topics/working-with-relations","en/4.tauri-sqlite-orm/6.advanced-topics/1.working-with-relations",{"title":197,"path":198,"stem":199},"Error Handling & Safety","/en/tauri-sqlite-orm/advanced-topics/error-handling-and-safety","en/4.tauri-sqlite-orm/6.advanced-topics/10.error-handling-and-safety",{"title":201,"path":202,"stem":203},"Joins","/en/tauri-sqlite-orm/advanced-topics/joins","en/4.tauri-sqlite-orm/6.advanced-topics/2.joins",{"title":205,"path":206,"stem":207},"Transactions","/en/tauri-sqlite-orm/advanced-topics/transactions","en/4.tauri-sqlite-orm/6.advanced-topics/3.transactions",{"title":209,"path":210,"stem":211},"Common Table Expressions","/en/tauri-sqlite-orm/advanced-topics/common-table-expressions","en/4.tauri-sqlite-orm/6.advanced-topics/4.common-table-expressions",{"title":213,"path":214,"stem":215},"Raw SQL","/en/tauri-sqlite-orm/advanced-topics/raw-sql","en/4.tauri-sqlite-orm/6.advanced-topics/5.raw-sql",{"title":217,"path":218,"stem":219},"Type Safety & Inference","/en/tauri-sqlite-orm/advanced-topics/type-safety-and-inference","en/4.tauri-sqlite-orm/6.advanced-topics/6.type-safety-and-inference",{"title":221,"path":222,"stem":223},"Schema Management","/en/tauri-sqlite-orm/advanced-topics/manual-schema-management","en/4.tauri-sqlite-orm/6.advanced-topics/7.manual-schema-management",{"title":225,"path":226,"stem":227},"Query Debugging","/en/tauri-sqlite-orm/advanced-topics/query-debugging","en/4.tauri-sqlite-orm/6.advanced-topics/8.query-debugging",{"title":229,"path":230,"stem":231},"Subqueries & Aggregates","/en/tauri-sqlite-orm/advanced-topics/subqueries-and-aggregates","en/4.tauri-sqlite-orm/6.advanced-topics/9.subqueries-and-aggregates",{"title":233,"path":234,"stem":235,"icon":236},"API Reference","/en/tauri-sqlite-orm/api-reference","en/4.tauri-sqlite-orm/7.api-reference","i-lucide-book",{"id":238,"title":92,"body":239,"description":245,"extension":1664,"links":1665,"meta":1666,"navigation":1668,"path":93,"seo":1669,"stem":94,"__hash__":1670},"docs_en/en/3.nexus/endpoints/2.rate-limiting.md",{"type":240,"value":241,"toc":1624},"minimark",[242,246,256,268,273,278,400,404,437,441,455,459,548,552,570,573,577,647,651,675,679,732,736,752,755,759,802,806,830,834,855,859,912,916,932,936,1007,1010,1014,1139,1143,1170,1174,1188,1192,1308,1312,1328,1332,1336,1388,1392,1419,1423,1437,1441,1492,1496,1512,1516,1564,1568,1585,1588,1591,1617,1620],[243,244,245],"p",{},"Rate limiting is implemented to prevent abuse of the API. The default configuration allows:",[247,248,249,253],"ul",{},[250,251,252],"li",{},"10 requests per second",[250,254,255],{},"Burst of up to 30 requests",[243,257,258,259,263,264,267],{},"These values can be adjusted using the ",[260,261,262],"code",{},"RATE_LIMIT_PER_SECOND"," and ",[260,265,266],{},"RATE_LIMIT_BURST"," environment variables.",[269,270,272],"h2",{"id":271},"blog-posts","Blog Posts",[274,275,277],"h3",{"id":276},"create-a-blog-post","Create a Blog Post",[247,279,280,290,295,394],{},[250,281,282,286,287],{},[283,284,285],"strong",{},"POST"," ",[260,288,289],{},"/api/v1/blog",[250,291,292,294],{},[283,293,88],{},": Required",[250,296,297,300,301],{},[283,298,299],{},"Body",":\n",[302,303,308],"pre",{"className":304,"code":305,"language":306,"meta":307,"style":307},"language-json shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","{\n  \"title\": \"Your Blog Post Title\",\n  \"content\": \"Your blog post content goes here\",\n  \"coverID\": 123  // Optional: ID of the cover photo\n}\n","json","",[260,309,310,319,347,368,388],{"__ignoreMap":307},[311,312,315],"span",{"class":313,"line":314},"line",1,[311,316,318],{"class":317},"sMK4o","{\n",[311,320,322,325,329,332,335,338,342,344],{"class":313,"line":321},2,[311,323,324],{"class":317},"  \"",[311,326,328],{"class":327},"spNyl","title",[311,330,331],{"class":317},"\"",[311,333,334],{"class":317},":",[311,336,337],{"class":317}," \"",[311,339,341],{"class":340},"sfazB","Your Blog Post Title",[311,343,331],{"class":317},[311,345,346],{"class":317},",\n",[311,348,350,352,355,357,359,361,364,366],{"class":313,"line":349},3,[311,351,324],{"class":317},[311,353,354],{"class":327},"content",[311,356,331],{"class":317},[311,358,334],{"class":317},[311,360,337],{"class":317},[311,362,363],{"class":340},"Your blog post content goes here",[311,365,331],{"class":317},[311,367,346],{"class":317},[311,369,371,373,376,378,380,384],{"class":313,"line":370},4,[311,372,324],{"class":317},[311,374,375],{"class":327},"coverID",[311,377,331],{"class":317},[311,379,334],{"class":317},[311,381,383],{"class":382},"sbssI"," 123",[311,385,387],{"class":386},"sHwdD","  // Optional: ID of the cover photo\n",[311,389,391],{"class":313,"line":390},5,[311,392,393],{"class":317},"}\n",[250,395,396,399],{},[283,397,398],{},"Response",": Returns the created blog post object",[274,401,403],{"id":402},"get-all-blog-posts","Get All Blog Posts",[247,405,406,413,432],{},[250,407,408,286,411],{},[283,409,410],{},"GET",[260,412,289],{},[250,414,415,300,418],{},[283,416,417],{},"Query Parameters",[247,419,420,426],{},[250,421,422,425],{},[260,423,424],{},"page"," (optional): Page number for pagination (default: 1)",[250,427,428,431],{},[260,429,430],{},"pageSize"," (optional): Number of items per page (default: 10)",[250,433,434,436],{},[283,435,398],{},": Returns an array of blog post objects",[274,438,440],{"id":439},"get-a-specific-blog-post","Get a Specific Blog Post",[247,442,443,450],{},[250,444,445,286,447],{},[283,446,410],{},[260,448,449],{},"/api/v1/blog/:id",[250,451,452,454],{},[283,453,398],{},": Returns the specified blog post object",[274,456,458],{"id":457},"update-a-blog-post","Update a Blog Post",[247,460,461,468,472,543],{},[250,462,463,286,466],{},[283,464,465],{},"PUT",[260,467,449],{},[250,469,470,294],{},[283,471,88],{},[250,473,474,300,476],{},[283,475,299],{},[302,477,479],{"className":304,"code":478,"language":306,"meta":307,"style":307},"{\n  \"title\": \"Updated Title\",\n  \"content\": \"Updated content\",\n  \"coverID\": 456  // Optional: New cover photo ID\n}\n",[260,480,481,485,504,523,539],{"__ignoreMap":307},[311,482,483],{"class":313,"line":314},[311,484,318],{"class":317},[311,486,487,489,491,493,495,497,500,502],{"class":313,"line":321},[311,488,324],{"class":317},[311,490,328],{"class":327},[311,492,331],{"class":317},[311,494,334],{"class":317},[311,496,337],{"class":317},[311,498,499],{"class":340},"Updated Title",[311,501,331],{"class":317},[311,503,346],{"class":317},[311,505,506,508,510,512,514,516,519,521],{"class":313,"line":349},[311,507,324],{"class":317},[311,509,354],{"class":327},[311,511,331],{"class":317},[311,513,334],{"class":317},[311,515,337],{"class":317},[311,517,518],{"class":340},"Updated content",[311,520,331],{"class":317},[311,522,346],{"class":317},[311,524,525,527,529,531,533,536],{"class":313,"line":370},[311,526,324],{"class":317},[311,528,375],{"class":327},[311,530,331],{"class":317},[311,532,334],{"class":317},[311,534,535],{"class":382}," 456",[311,537,538],{"class":386},"  // Optional: New cover photo ID\n",[311,540,541],{"class":313,"line":390},[311,542,393],{"class":317},[250,544,545,547],{},[283,546,398],{},": Returns the updated blog post object",[274,549,551],{"id":550},"delete-a-blog-post","Delete a Blog Post",[247,553,554,561,565],{},[250,555,556,286,559],{},[283,557,558],{},"DELETE",[260,560,449],{},[250,562,563,294],{},[283,564,88],{},[250,566,567,569],{},[283,568,398],{},": Returns a success message",[269,571,111],{"id":572},"comments",[274,574,576],{"id":575},"add-a-comment","Add a Comment",[247,578,579,586,590,642],{},[250,580,581,286,583],{},[283,582,285],{},[260,584,585],{},"/api/v1/comments",[250,587,588,294],{},[283,589,88],{},[250,591,592,300,594],{},[283,593,299],{},[302,595,597],{"className":304,"code":596,"language":306,"meta":307,"style":307},"{\n  \"content\": \"Your comment here\",\n  \"blogPostID\": 123  // ID of the blog post\n}\n",[260,598,599,603,622,638],{"__ignoreMap":307},[311,600,601],{"class":313,"line":314},[311,602,318],{"class":317},[311,604,605,607,609,611,613,615,618,620],{"class":313,"line":321},[311,606,324],{"class":317},[311,608,354],{"class":327},[311,610,331],{"class":317},[311,612,334],{"class":317},[311,614,337],{"class":317},[311,616,617],{"class":340},"Your comment here",[311,619,331],{"class":317},[311,621,346],{"class":317},[311,623,624,626,629,631,633,635],{"class":313,"line":349},[311,625,324],{"class":317},[311,627,628],{"class":327},"blogPostID",[311,630,331],{"class":317},[311,632,334],{"class":317},[311,634,383],{"class":382},[311,636,637],{"class":386},"  // ID of the blog post\n",[311,639,640],{"class":313,"line":370},[311,641,393],{"class":317},[250,643,644,646],{},[283,645,398],{},": Returns the created comment object",[274,648,650],{"id":649},"get-comments","Get Comments",[247,652,653,659,670],{},[250,654,655,286,657],{},[283,656,410],{},[260,658,585],{},[250,660,661,300,663],{},[283,662,417],{},[247,664,665],{},[250,666,667,669],{},[260,668,628],{},": ID of the blog post",[250,671,672,674],{},[283,673,398],{},": Returns an array of comment objects",[274,676,678],{"id":677},"update-a-comment","Update a Comment",[247,680,681,688,692,727],{},[250,682,683,286,685],{},[283,684,465],{},[260,686,687],{},"/api/v1/comments/:id",[250,689,690,294],{},[283,691,88],{},[250,693,694,300,696],{},[283,695,299],{},[302,697,699],{"className":304,"code":698,"language":306,"meta":307,"style":307},"{\n  \"content\": \"Updated comment content\"\n}\n",[260,700,701,705,723],{"__ignoreMap":307},[311,702,703],{"class":313,"line":314},[311,704,318],{"class":317},[311,706,707,709,711,713,715,717,720],{"class":313,"line":321},[311,708,324],{"class":317},[311,710,354],{"class":327},[311,712,331],{"class":317},[311,714,334],{"class":317},[311,716,337],{"class":317},[311,718,719],{"class":340},"Updated comment content",[311,721,722],{"class":317},"\"\n",[311,724,725],{"class":313,"line":349},[311,726,393],{"class":317},[250,728,729,731],{},[283,730,398],{},": Returns the updated comment object",[274,733,735],{"id":734},"delete-a-comment","Delete a Comment",[247,737,738,744,748],{},[250,739,740,286,742],{},[283,741,558],{},[260,743,687],{},[250,745,746,294],{},[283,747,88],{},[250,749,750,569],{},[283,751,398],{},[269,753,115],{"id":754},"file-management",[274,756,758],{"id":757},"upload-a-file","Upload a File",[247,760,761,768,772,797],{},[250,762,763,286,765],{},[283,764,285],{},[260,766,767],{},"/api/v1/files",[250,769,770,294],{},[283,771,88],{},[250,773,774,300,777],{},[283,775,776],{},"Form Data",[247,778,779,785,791],{},[250,780,781,784],{},[260,782,783],{},"file",": The file to upload",[250,786,787,790],{},[260,788,789],{},"path"," (optional): The directory path to store the file (default: root directory)",[250,792,793,796],{},[260,794,795],{},"isDirectory"," (optional): Set to \"true\" if creating a directory (default: \"false\")",[250,798,799,801],{},[283,800,398],{},": Returns the file object",[274,803,805],{"id":804},"list-files","List Files",[247,807,808,814,825],{},[250,809,810,286,812],{},[283,811,410],{},[260,813,767],{},[250,815,816,300,818],{},[283,817,417],{},[247,819,820],{},[250,821,822,824],{},[260,823,789],{}," (optional): The directory path to list files from (default: root directory)",[250,826,827,829],{},[283,828,398],{},": Returns an array of file objects in the specified directory",[274,831,833],{"id":832},"get-file-or-directory-contents","Get File or Directory Contents",[247,835,836,843],{},[250,837,838,286,840],{},[283,839,410],{},[260,841,842],{},"/api/v1/files/dir/*path",[250,844,845,300,847],{},[283,846,398],{},[247,848,849,852],{},[250,850,851],{},"If path is a file: Returns the file object",[250,853,854],{},"If path is a directory: Returns an array of file objects in the directory",[274,856,858],{"id":857},"update-file-metadata","Update File Metadata",[247,860,861,868,872,907],{},[250,862,863,286,865],{},[283,864,465],{},[260,866,867],{},"/api/v1/files/:id",[250,869,870,294],{},[283,871,88],{},[250,873,874,300,876],{},[283,875,299],{},[302,877,879],{"className":304,"code":878,"language":306,"meta":307,"style":307},"{\n  \"name\": \"Updated file name\"\n}\n",[260,880,881,885,903],{"__ignoreMap":307},[311,882,883],{"class":313,"line":314},[311,884,318],{"class":317},[311,886,887,889,892,894,896,898,901],{"class":313,"line":321},[311,888,324],{"class":317},[311,890,891],{"class":327},"name",[311,893,331],{"class":317},[311,895,334],{"class":317},[311,897,337],{"class":317},[311,899,900],{"class":340},"Updated file name",[311,902,722],{"class":317},[311,904,905],{"class":313,"line":349},[311,906,393],{"class":317},[250,908,909,911],{},[283,910,398],{},": Returns the updated file object",[274,913,915],{"id":914},"delete-a-file","Delete a File",[247,917,918,924,928],{},[250,919,920,286,922],{},[283,921,558],{},[260,923,867],{},[250,925,926,294],{},[283,927,88],{},[250,929,930,569],{},[283,931,398],{},[274,933,935],{"id":934},"create-a-directory","Create a Directory",[247,937,938,945,949,1002],{},[250,939,940,286,942],{},[283,941,285],{},[260,943,944],{},"/api/v1/directories",[250,946,947,294],{},[283,948,88],{},[250,950,951,300,953],{},[283,952,299],{},[302,954,956],{"className":304,"code":955,"language":306,"meta":307,"style":307},"{\n  \"name\": \"New Directory Name\",\n  \"path\": \"/parent/directory/path\"\n}\n",[260,957,958,962,981,998],{"__ignoreMap":307},[311,959,960],{"class":313,"line":314},[311,961,318],{"class":317},[311,963,964,966,968,970,972,974,977,979],{"class":313,"line":321},[311,965,324],{"class":317},[311,967,891],{"class":327},[311,969,331],{"class":317},[311,971,334],{"class":317},[311,973,337],{"class":317},[311,975,976],{"class":340},"New Directory Name",[311,978,331],{"class":317},[311,980,346],{"class":317},[311,982,983,985,987,989,991,993,996],{"class":313,"line":349},[311,984,324],{"class":317},[311,986,789],{"class":327},[311,988,331],{"class":317},[311,990,334],{"class":317},[311,992,337],{"class":317},[311,994,995],{"class":340},"/parent/directory/path",[311,997,722],{"class":317},[311,999,1000],{"class":313,"line":370},[311,1001,393],{"class":317},[250,1003,1004,1006],{},[283,1005,398],{},": Returns the created directory object",[269,1008,119],{"id":1009},"photo-management",[274,1011,1013],{"id":1012},"create-a-photo","Create a Photo",[247,1015,1016,1023,1027,1134],{},[250,1017,1018,286,1020],{},[283,1019,285],{},[260,1021,1022],{},"/api/v1/photos",[250,1024,1025,294],{},[283,1026,88],{},[250,1028,1029,300,1031],{},[283,1030,299],{},[302,1032,1034],{"className":304,"code":1033,"language":306,"meta":307,"style":307},"{\n  \"title\": \"Photo Title\",\n  \"description\": \"Photo description\",\n  \"fileID\": 123,  // ID of the associated file\n  \"width\": 1920,\n  \"height\": 1080\n}\n",[260,1035,1036,1040,1059,1079,1098,1114,1129],{"__ignoreMap":307},[311,1037,1038],{"class":313,"line":314},[311,1039,318],{"class":317},[311,1041,1042,1044,1046,1048,1050,1052,1055,1057],{"class":313,"line":321},[311,1043,324],{"class":317},[311,1045,328],{"class":327},[311,1047,331],{"class":317},[311,1049,334],{"class":317},[311,1051,337],{"class":317},[311,1053,1054],{"class":340},"Photo Title",[311,1056,331],{"class":317},[311,1058,346],{"class":317},[311,1060,1061,1063,1066,1068,1070,1072,1075,1077],{"class":313,"line":349},[311,1062,324],{"class":317},[311,1064,1065],{"class":327},"description",[311,1067,331],{"class":317},[311,1069,334],{"class":317},[311,1071,337],{"class":317},[311,1073,1074],{"class":340},"Photo description",[311,1076,331],{"class":317},[311,1078,346],{"class":317},[311,1080,1081,1083,1086,1088,1090,1092,1095],{"class":313,"line":370},[311,1082,324],{"class":317},[311,1084,1085],{"class":327},"fileID",[311,1087,331],{"class":317},[311,1089,334],{"class":317},[311,1091,383],{"class":382},[311,1093,1094],{"class":317},",",[311,1096,1097],{"class":386},"  // ID of the associated file\n",[311,1099,1100,1102,1105,1107,1109,1112],{"class":313,"line":390},[311,1101,324],{"class":317},[311,1103,1104],{"class":327},"width",[311,1106,331],{"class":317},[311,1108,334],{"class":317},[311,1110,1111],{"class":382}," 1920",[311,1113,346],{"class":317},[311,1115,1117,1119,1122,1124,1126],{"class":313,"line":1116},6,[311,1118,324],{"class":317},[311,1120,1121],{"class":327},"height",[311,1123,331],{"class":317},[311,1125,334],{"class":317},[311,1127,1128],{"class":382}," 1080\n",[311,1130,1132],{"class":313,"line":1131},7,[311,1133,393],{"class":317},[250,1135,1136,1138],{},[283,1137,398],{},": Returns the created photo object",[274,1140,1142],{"id":1141},"get-all-photos","Get All Photos",[247,1144,1145,1151,1165],{},[250,1146,1147,286,1149],{},[283,1148,410],{},[260,1150,1022],{},[250,1152,1153,300,1155],{},[283,1154,417],{},[247,1156,1157,1161],{},[250,1158,1159,425],{},[260,1160,424],{},[250,1162,1163,431],{},[260,1164,430],{},[250,1166,1167,1169],{},[283,1168,398],{},": Returns an array of photo objects",[274,1171,1173],{"id":1172},"get-a-specific-photo","Get a Specific Photo",[247,1175,1176,1183],{},[250,1177,1178,286,1180],{},[283,1179,410],{},[260,1181,1182],{},"/api/v1/photos/:id",[250,1184,1185,1187],{},[283,1186,398],{},": Returns the specified photo object",[274,1189,1191],{"id":1190},"update-a-photo","Update a Photo",[247,1193,1194,1200,1204,1303],{},[250,1195,1196,286,1198],{},[283,1197,465],{},[260,1199,1182],{},[250,1201,1202,294],{},[283,1203,88],{},[250,1205,1206,300,1208],{},[283,1207,299],{},[302,1209,1211],{"className":304,"code":1210,"language":306,"meta":307,"style":307},"{\n  \"title\": \"Updated Title\",\n  \"description\": \"Updated description\",\n  \"fileID\": 456,  // Optional: New associated file ID\n  \"width\": 3840,\n  \"height\": 2160\n}\n",[260,1212,1213,1217,1235,1254,1271,1286,1299],{"__ignoreMap":307},[311,1214,1215],{"class":313,"line":314},[311,1216,318],{"class":317},[311,1218,1219,1221,1223,1225,1227,1229,1231,1233],{"class":313,"line":321},[311,1220,324],{"class":317},[311,1222,328],{"class":327},[311,1224,331],{"class":317},[311,1226,334],{"class":317},[311,1228,337],{"class":317},[311,1230,499],{"class":340},[311,1232,331],{"class":317},[311,1234,346],{"class":317},[311,1236,1237,1239,1241,1243,1245,1247,1250,1252],{"class":313,"line":349},[311,1238,324],{"class":317},[311,1240,1065],{"class":327},[311,1242,331],{"class":317},[311,1244,334],{"class":317},[311,1246,337],{"class":317},[311,1248,1249],{"class":340},"Updated description",[311,1251,331],{"class":317},[311,1253,346],{"class":317},[311,1255,1256,1258,1260,1262,1264,1266,1268],{"class":313,"line":370},[311,1257,324],{"class":317},[311,1259,1085],{"class":327},[311,1261,331],{"class":317},[311,1263,334],{"class":317},[311,1265,535],{"class":382},[311,1267,1094],{"class":317},[311,1269,1270],{"class":386},"  // Optional: New associated file ID\n",[311,1272,1273,1275,1277,1279,1281,1284],{"class":313,"line":390},[311,1274,324],{"class":317},[311,1276,1104],{"class":327},[311,1278,331],{"class":317},[311,1280,334],{"class":317},[311,1282,1283],{"class":382}," 3840",[311,1285,346],{"class":317},[311,1287,1288,1290,1292,1294,1296],{"class":313,"line":1116},[311,1289,324],{"class":317},[311,1291,1121],{"class":327},[311,1293,331],{"class":317},[311,1295,334],{"class":317},[311,1297,1298],{"class":382}," 2160\n",[311,1300,1301],{"class":313,"line":1131},[311,1302,393],{"class":317},[250,1304,1305,1307],{},[283,1306,398],{},": Returns the updated photo object",[274,1309,1311],{"id":1310},"delete-a-photo","Delete a Photo",[247,1313,1314,1320,1324],{},[250,1315,1316,286,1318],{},[283,1317,558],{},[260,1319,1182],{},[250,1321,1322,294],{},[283,1323,88],{},[250,1325,1326,569],{},[283,1327,398],{},[269,1329,1331],{"id":1330},"albums","Albums",[274,1333,1335],{"id":1334},"create-an-album","Create an Album",[247,1337,1338,1345,1349,1383],{},[250,1339,1340,286,1342],{},[283,1341,285],{},[260,1343,1344],{},"/api/v1/albums",[250,1346,1347,294],{},[283,1348,88],{},[250,1350,1351,300,1353],{},[283,1352,299],{},[302,1354,1356],{"className":304,"code":1355,"language":306,"meta":307,"style":307},"{\n  \"name\": \"My New Album\"\n}\n",[260,1357,1358,1362,1379],{"__ignoreMap":307},[311,1359,1360],{"class":313,"line":314},[311,1361,318],{"class":317},[311,1363,1364,1366,1368,1370,1372,1374,1377],{"class":313,"line":321},[311,1365,324],{"class":317},[311,1367,891],{"class":327},[311,1369,331],{"class":317},[311,1371,334],{"class":317},[311,1373,337],{"class":317},[311,1375,1376],{"class":340},"My New Album",[311,1378,722],{"class":317},[311,1380,1381],{"class":313,"line":349},[311,1382,393],{"class":317},[250,1384,1385,1387],{},[283,1386,398],{},": Returns the created album object",[274,1389,1391],{"id":1390},"get-all-albums","Get All Albums",[247,1393,1394,1400,1414],{},[250,1395,1396,286,1398],{},[283,1397,410],{},[260,1399,1344],{},[250,1401,1402,300,1404],{},[283,1403,417],{},[247,1405,1406,1410],{},[250,1407,1408,425],{},[260,1409,424],{},[250,1411,1412,431],{},[260,1413,430],{},[250,1415,1416,1418],{},[283,1417,398],{},": Returns an array of album objects",[274,1420,1422],{"id":1421},"get-a-specific-album","Get a Specific Album",[247,1424,1425,1432],{},[250,1426,1427,286,1429],{},[283,1428,410],{},[260,1430,1431],{},"/api/v1/albums/:id",[250,1433,1434,1436],{},[283,1435,398],{},": Returns the specified album object with associated photos",[274,1438,1440],{"id":1439},"update-an-album","Update an Album",[247,1442,1443,1449,1453,1487],{},[250,1444,1445,286,1447],{},[283,1446,465],{},[260,1448,1431],{},[250,1450,1451,294],{},[283,1452,88],{},[250,1454,1455,300,1457],{},[283,1456,299],{},[302,1458,1460],{"className":304,"code":1459,"language":306,"meta":307,"style":307},"{\n  \"name\": \"Updated Album Name\"\n}\n",[260,1461,1462,1466,1483],{"__ignoreMap":307},[311,1463,1464],{"class":313,"line":314},[311,1465,318],{"class":317},[311,1467,1468,1470,1472,1474,1476,1478,1481],{"class":313,"line":321},[311,1469,324],{"class":317},[311,1471,891],{"class":327},[311,1473,331],{"class":317},[311,1475,334],{"class":317},[311,1477,337],{"class":317},[311,1479,1480],{"class":340},"Updated Album Name",[311,1482,722],{"class":317},[311,1484,1485],{"class":313,"line":349},[311,1486,393],{"class":317},[250,1488,1489,1491],{},[283,1490,398],{},": Returns the updated album object",[274,1493,1495],{"id":1494},"delete-an-album","Delete an Album",[247,1497,1498,1504,1508],{},[250,1499,1500,286,1502],{},[283,1501,558],{},[260,1503,1431],{},[250,1505,1506,294],{},[283,1507,88],{},[250,1509,1510,569],{},[283,1511,398],{},[274,1513,1515],{"id":1514},"add-a-photo-to-an-album","Add a Photo to an Album",[247,1517,1518,1525,1529,1560],{},[250,1519,1520,286,1522],{},[283,1521,285],{},[260,1523,1524],{},"/api/v1/albums/:id/photos",[250,1526,1527,294],{},[283,1528,88],{},[250,1530,1531,300,1533],{},[283,1532,299],{},[302,1534,1536],{"className":304,"code":1535,"language":306,"meta":307,"style":307},"{\n  \"photoID\": 123\n}\n",[260,1537,1538,1542,1556],{"__ignoreMap":307},[311,1539,1540],{"class":313,"line":314},[311,1541,318],{"class":317},[311,1543,1544,1546,1549,1551,1553],{"class":313,"line":321},[311,1545,324],{"class":317},[311,1547,1548],{"class":327},"photoID",[311,1550,331],{"class":317},[311,1552,334],{"class":317},[311,1554,1555],{"class":382}," 123\n",[311,1557,1558],{"class":313,"line":349},[311,1559,393],{"class":317},[250,1561,1562,569],{},[283,1563,398],{},[274,1565,1567],{"id":1566},"remove-a-photo-from-an-album","Remove a Photo from an Album",[247,1569,1570,1577,1581],{},[250,1571,1572,286,1574],{},[283,1573,558],{},[260,1575,1576],{},"/api/v1/albums/:id/photos/:photoID",[250,1578,1579,294],{},[283,1580,88],{},[250,1582,1583,569],{},[283,1584,398],{},[269,1586,96],{"id":1587},"error-handling",[243,1589,1590],{},"All endpoints will return appropriate HTTP status codes:",[247,1592,1593,1596,1599,1602,1605,1608,1611,1614],{},[250,1594,1595],{},"200: Successful operation",[250,1597,1598],{},"201: Successful creation",[250,1600,1601],{},"400: Bad request (e.g., invalid input)",[250,1603,1604],{},"401: Unauthorized (authentication required)",[250,1606,1607],{},"403: Forbidden (insufficient permissions)",[250,1609,1610],{},"404: Resource not found",[250,1612,1613],{},"429: Too Many Requests (rate limit exceeded)",[250,1615,1616],{},"500: Internal server error",[243,1618,1619],{},"Error responses will include a JSON object with an \"error\" field describing the issue.",[1621,1622,1623],"style",{},"html pre.shiki code .sMK4o, html code.shiki .sMK4o{--shiki-light:#39ADB5;--shiki-default:#89DDFF;--shiki-dark:#89DDFF}html pre.shiki code .spNyl, html code.shiki .spNyl{--shiki-light:#9C3EDA;--shiki-default:#C792EA;--shiki-dark:#C792EA}html pre.shiki code .sfazB, html code.shiki .sfazB{--shiki-light:#91B859;--shiki-default:#C3E88D;--shiki-dark:#C3E88D}html pre.shiki code .sbssI, html code.shiki .sbssI{--shiki-light:#F76D47;--shiki-default:#F78C6C;--shiki-dark:#F78C6C}html pre.shiki code .sHwdD, html code.shiki .sHwdD{--shiki-light:#90A4AE;--shiki-light-font-style:italic;--shiki-default:#546E7A;--shiki-default-font-style:italic;--shiki-dark:#676E95;--shiki-dark-font-style:italic}html .light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html.light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}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);}html .dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html.dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}",{"title":307,"searchDepth":321,"depth":321,"links":1625},[1626,1633,1639,1647,1654,1663],{"id":271,"depth":321,"text":272,"children":1627},[1628,1629,1630,1631,1632],{"id":276,"depth":349,"text":277},{"id":402,"depth":349,"text":403},{"id":439,"depth":349,"text":440},{"id":457,"depth":349,"text":458},{"id":550,"depth":349,"text":551},{"id":572,"depth":321,"text":111,"children":1634},[1635,1636,1637,1638],{"id":575,"depth":349,"text":576},{"id":649,"depth":349,"text":650},{"id":677,"depth":349,"text":678},{"id":734,"depth":349,"text":735},{"id":754,"depth":321,"text":115,"children":1640},[1641,1642,1643,1644,1645,1646],{"id":757,"depth":349,"text":758},{"id":804,"depth":349,"text":805},{"id":832,"depth":349,"text":833},{"id":857,"depth":349,"text":858},{"id":914,"depth":349,"text":915},{"id":934,"depth":349,"text":935},{"id":1009,"depth":321,"text":119,"children":1648},[1649,1650,1651,1652,1653],{"id":1012,"depth":349,"text":1013},{"id":1141,"depth":349,"text":1142},{"id":1172,"depth":349,"text":1173},{"id":1190,"depth":349,"text":1191},{"id":1310,"depth":349,"text":1311},{"id":1330,"depth":321,"text":1331,"children":1655},[1656,1657,1658,1659,1660,1661,1662],{"id":1334,"depth":349,"text":1335},{"id":1390,"depth":349,"text":1391},{"id":1421,"depth":349,"text":1422},{"id":1439,"depth":349,"text":1440},{"id":1494,"depth":349,"text":1495},{"id":1514,"depth":349,"text":1515},{"id":1566,"depth":349,"text":1567},{"id":1587,"depth":321,"text":96},"md",null,{"category":1667},"nexus",true,{"title":92,"description":245},"RN7zqLsX1Z8PnUlgl48f6TCt9mCNu3eB7B5mNPfHusA",[1672,1674],{"title":88,"path":89,"stem":90,"description":1673,"children":-1},"Nexus now supports user authentication using JSON Web Tokens (JWT).",{"title":96,"path":97,"stem":98,"description":1590,"children":-1},1773317301361]