[{"data":1,"prerenderedAt":30},["ShallowReactive",2],{"clay-page:\u002Fde\u002Ffeatures\u002Fopenapi":3},{"html":4,"toc":5,"description":26,"hero":27,"list":28,"socialImage":29},"\u003Ch1 id=\"openapi\">OpenAPI \u003Cspan class=\"badge badge-sm badge-soft badge-success clay-badge\">Neu in Clay 5\u003C\u002Fspan>\u003C\u002Fh1>\n\u003Cp>Nenne in \u003Ccode>clay.yaml\u003C\u002Fcode> ein OpenAPI-Dokument, und Clay macht eine Seite für jede seiner Operationen, Tags und Schemas. Sie stehen in der Navigation unter der Dokumentation, unter einer Linie, und werden durchsucht, geprüft und von Agenten gelesen wie jede andere Seite. Die \u003Ca href=\"\u002Fclay-example-repo\u002Fde\u002Fapi\u002Fpetstore\" data-route=\"\u002Fde\u002Fapi\u002Fpetstore\">Petstore-API\u003C\u002Fa> dieser Website entsteht so, aus der Beispiel-API von Swagger.\u003C\u002Fp>\n\u003Cdiv class=\"code-block has-title\">\u003Cdiv class=\"code-title\">\u003Ci class=\"fa-regular fa-file-lines\" aria-hidden=\"true\">\u003C\u002Fi>\u003Cspan>clay.yaml\u003C\u002Fspan>\u003C\u002Fdiv>\u003Cpre class=\"shiki shiki-themes light-plus dark-plus\" style=\"--shiki-light:#000000;--shiki-dark:#D4D4D4;--shiki-light-bg:#FFFFFF;--shiki-dark-bg:#1E1E1E\" tabindex=\"0\">\u003Ccode>\u003Cspan class=\"line\">\u003Cspan style=\"--shiki-light:#800000;--shiki-dark:#569CD6\">openapi\u003C\u002Fspan>\u003Cspan style=\"--shiki-light:#000000;--shiki-dark:#D4D4D4\">:\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan style=\"--shiki-light:#000000;--shiki-dark:#D4D4D4\">  - \u003C\u002Fspan>\u003Cspan style=\"--shiki-light:#800000;--shiki-dark:#569CD6\">spec\u003C\u002Fspan>\u003Cspan style=\"--shiki-light:#000000;--shiki-dark:#D4D4D4\">: \u003C\u002Fspan>\u003Cspan style=\"--shiki-light:#0000FF;--shiki-dark:#CE9178\">openapi\u002Fpetstore.yaml\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan style=\"--shiki-light:#800000;--shiki-dark:#569CD6\">    title\u003C\u002Fspan>\u003Cspan style=\"--shiki-light:#000000;--shiki-dark:#D4D4D4\">: \u003C\u002Fspan>\u003Cspan style=\"--shiki-light:#0000FF;--shiki-dark:#CE9178\">Petstore API\u003C\u002Fspan>\u003Cspan style=\"--shiki-light:#006400;--shiki-dark:#6A9955\">     # Standard: der Titel des Dokuments\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan style=\"--shiki-light:#800000;--shiki-dark:#569CD6\">    route\u003C\u002Fspan>\u003Cspan style=\"--shiki-light:#000000;--shiki-dark:#D4D4D4\">: \u003C\u002Fspan>\u003Cspan style=\"--shiki-light:#0000FF;--shiki-dark:#CE9178\">api\u002Fpetstore\u003C\u002Fspan>\u003Cspan style=\"--shiki-light:#006400;--shiki-dark:#6A9955\">     # Standard: api\u002F und der Name der Datei\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan style=\"--shiki-light:#800000;--shiki-dark:#569CD6\">    icon\u003C\u002Fspan>\u003Cspan style=\"--shiki-light:#000000;--shiki-dark:#D4D4D4\">: \u003C\u002Fspan>\u003Cspan style=\"--shiki-light:#0000FF;--shiki-dark:#CE9178\">fa-solid fa-paw\u003C\u002Fspan>\u003Cspan style=\"--shiki-light:#006400;--shiki-dark:#6A9955\">   # Standard: ein Stecker\u003C\u002Fspan>\u003C\u002Fspan>\u003C\u002Fcode>\u003C\u002Fpre>\u003Cbutton type=\"button\" class=\"copy-code btn btn-sm btn-square btn-ghost\" title=\"Code kopieren\" aria-label=\"Code kopieren\">\u003Ci class=\"fa-solid fa-copy\">\u003C\u002Fi>\u003C\u002Fbutton>\u003C\u002Fdiv>\n\u003Cp>Clay liest OpenAPI 3.0 und 3.1 sowie Swagger 2.0, als YAML oder JSON. Verweise (\u003Ccode>$ref\u003C\u002Fcode>) dürfen zu anderen Dateien des Projekts führen. \u003Ccode>clay check\u003C\u002Fcode> und \u003Ccode>clay build --strict\u003C\u002Fcode> melden, was die OpenAPI-Spezifikation nicht erlaubt, mit der Stelle im Dokument.\u003C\u002Fp>\n\u003Cdiv class=\"markdown-alert markdown-alert-tip\">\n\u003Cp class=\"markdown-alert-title text-primary\">\u003Ci class=\"fa-solid fa-lightbulb mr-2\">\u003C\u002Fi>Tipp\u003C\u002Fp>\n\u003Cp>Ein Dokument, das woanders liegt, etwa eines, das deine API ausliefert, lädt \u003Ca href=\"\u002Fclay-example-repo\u002Fde\u002Fwriting\u002Fgenerated-docs\" data-route=\"\u002Fde\u002Fwriting\u002Fgenerated-docs\">\u003Ccode>generate\u003C\u002Fcode>\u003C\u002Fa> vor jedem Build herunter: \u003Ccode>curl -o openapi\u002Fapi.json https:\u002F\u002Fapi.example.com\u002Fopenapi.json\u003C\u002Fcode>.\u003C\u002Fp>\n\u003C\u002Fdiv>\n\u003Ch2 id=\"die-seiten\">\u003Ca class=\"heading-anchor\" href=\"#die-seiten\" aria-label=\"Link zu diesem Abschnitt\" data-route=\"#die-seiten\">#\u003C\u002Fa>Die Seiten\u003C\u002Fh2>\n\u003Ctable>\n\u003Cthead>\n\u003Ctr>\n\u003Cth>Seite\u003C\u002Fth>\n\u003Cth>Was sie zeigt\u003C\u002Fth>\n\u003C\u002Ftr>\n\u003C\u002Fthead>\n\u003Ctbody>\u003Ctr>\n\u003Ctd>Übersicht\u003C\u002Ftd>\n\u003Ctd>Version und Beschreibung, die Server, jede Art der Authentifizierung, die Operationen nach Tag und das Dokument zum Herunterladen\u003C\u002Ftd>\n\u003C\u002Ftr>\n\u003Ctr>\n\u003Ctd>Tag\u003C\u002Ftd>\n\u003Ctd>Seine Beschreibung und seine Operationen\u003C\u002Ftd>\n\u003C\u002Ftr>\n\u003Ctr>\n\u003Ctd>Operation\u003C\u002Ftd>\n\u003Ctd>Eine Request-Zelle zum Ausprobieren, die nötigen Zugangsdaten, Parameter, Anfrage-Body und Antworten (mit Headern, Beispielen und Links) und ihre Callbacks\u003C\u002Ftd>\n\u003C\u002Ftr>\n\u003Ctr>\n\u003Ctd>Webhook\u003C\u002Ftd>\n\u003Ctd>Die Anfrage, die die API an deinen Server sendet\u003C\u002Ftd>\n\u003C\u002Ftr>\n\u003Ctr>\n\u003Ctd>Schema\u003C\u002Ftd>\n\u003Ctd>Seine Eigenschaften, auch verschachtelte, und ein Beispiel\u003C\u002Ftd>\n\u003C\u002Ftr>\n\u003C\u002Ftbody>\u003C\u002Ftable>\n\u003Cp>Schemas mit eigenem Namen sind überall mit ihrer Seite verlinkt, so führt die \u003Ccode>category\u003C\u002Fcode> eines Haustiers zur Seite von \u003Ccode>Category\u003C\u002Fcode>. Operationen zeigen in der Navigation ihre Methode; veraltete sind durchgestrichen. Die Oberflächentexte der Seiten sind in der Sprache jeder Ausgabe; die Texte des Dokuments bleiben, wie sie sind.\u003C\u002Fp>\n\u003Ch2 id=\"request-zellen\">\u003Ca class=\"heading-anchor\" href=\"#request-zellen\" aria-label=\"Link zu diesem Abschnitt\" data-route=\"#request-zellen\">#\u003C\u002Fa>Request-Zellen\u003C\u002Fh2>\n\u003Cp>Eine Request-Zelle ist eine Anfrage, die man auf der Seite ausfüllt und ausführt, wie eine Zelle eines Notebooks. Jede Operation hat eine auf ihrer Seite. In eigenen Seiten nennst du die API und die Operation, und die Startwerte in YAML:\u003C\u002Fp>\n\u003Cdiv class=\"code-block\">\u003Cpre class=\"shiki shiki-themes light-plus dark-plus\" style=\"--shiki-light:#000000;--shiki-dark:#D4D4D4;--shiki-light-bg:#FFFFFF;--shiki-dark-bg:#1E1E1E\" tabindex=\"0\">\u003Ccode>\u003Cspan class=\"line\">\u003Cspan style=\"--shiki-light:#000000;--shiki-dark:#D4D4D4\">::: request petstore findPetsByStatus\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan style=\"--shiki-light:#000000;--shiki-dark:#D4D4D4\">status: available\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan style=\"--shiki-light:#000000;--shiki-dark:#D4D4D4\">:::\u003C\u002Fspan>\u003C\u002Fspan>\u003C\u002Fcode>\u003C\u002Fpre>\u003Cbutton type=\"button\" class=\"copy-code btn btn-sm btn-square btn-ghost\" title=\"Code kopieren\" aria-label=\"Code kopieren\">\u003Ci class=\"fa-solid fa-copy\">\u003C\u002Fi>\u003C\u002Fbutton>\u003C\u002Fdiv>\n\u003Cdiv class=\"clay-request not-prose\" data-request=\"{&quot;api&quot;:&quot;\u002Fapi\u002Fpetstore&quot;,&quot;title&quot;:&quot;Finds Pets by status.&quot;,&quot;link&quot;:&quot;\u002Fde\u002Fapi\u002Fpetstore\u002Fpet\u002Ffind-pets-by-status&quot;,&quot;method&quot;:&quot;GET&quot;,&quot;path&quot;:&quot;\u002Fpet\u002FfindByStatus&quot;,&quot;servers&quot;:[{&quot;url&quot;:&quot;https:\u002F\u002Fpetstore3.swagger.io\u002Fapi\u002Fv3&quot;,&quot;description&quot;:&quot;Swagger’s public Petstore&quot;}],&quot;parameters&quot;:[{&quot;name&quot;:&quot;status&quot;,&quot;in&quot;:&quot;query&quot;,&quot;required&quot;:true,&quot;type&quot;:&quot;string&quot;,&quot;description&quot;:&quot;Status values that need to be considered for filter&quot;,&quot;options&quot;:[&quot;available&quot;,&quot;pending&quot;,&quot;sold&quot;],&quot;example&quot;:&quot;available&quot;}],&quot;security&quot;:[{&quot;petstore_auth&quot;:[&quot;write:pets&quot;,&quot;read:pets&quot;]}],&quot;schemes&quot;:{&quot;petstore_auth&quot;:{&quot;type&quot;:&quot;oauth2&quot;,&quot;flows&quot;:{&quot;implicit&quot;:{&quot;authorizationUrl&quot;:&quot;https:\u002F\u002Fpetstore3.swagger.io\u002Foauth\u002Fauthorize&quot;,&quot;scopes&quot;:{&quot;write:pets&quot;:&quot;modify pets in your account&quot;,&quot;read:pets&quot;:&quot;read your pets&quot;}}}},&quot;api_key&quot;:{&quot;type&quot;:&quot;apiKey&quot;,&quot;in&quot;:&quot;header&quot;,&quot;name&quot;:&quot;api_key&quot;}},&quot;values&quot;:{&quot;status&quot;:&quot;available&quot;},&quot;example&quot;:{&quot;status&quot;:&quot;200&quot;,&quot;type&quot;:&quot;application\u002Fjson&quot;,&quot;body&quot;:&quot;[\\n  {\\n    \\&quot;id\\&quot;: 10,\\n    \\&quot;name\\&quot;: \\&quot;doggie\\&quot;,\\n    \\&quot;category\\&quot;: {\\n      \\&quot;id\\&quot;: 1,\\n      \\&quot;name\\&quot;: \\&quot;Dogs\\&quot;\\n    },\\n    \\&quot;photoUrls\\&quot;: [\\n      \\&quot;string\\&quot;\\n    ],\\n    \\&quot;tags\\&quot;: [\\n      {\\n        \\&quot;id\\&quot;: 0,\\n        \\&quot;name\\&quot;: \\&quot;string\\&quot;\\n      }\\n    ],\\n    \\&quot;status\\&quot;: \\&quot;available\\&quot;\\n  }\\n]&quot;}}\">\u003Cdiv class=\"clay-request-head\">\u003Cspan class=\"clay-method clay-method-get\">GET\u003C\u002Fspan>\u003Ccode class=\"clay-request-path\">\u002Fpet\u002FfindByStatus\u003C\u002Fcode>\u003Cspan class=\"clay-request-title\">Finds Pets by status.\u003C\u002Fspan>\u003C\u002Fdiv>\u003Cpre class=\"clay-request-code\">\u003Ccode>curl 'https:\u002F\u002Fpetstore3.swagger.io\u002Fapi\u002Fv3\u002Fpet\u002FfindByStatus?status=available' \\\n  -H 'Authorization: Bearer &lt;token&gt;'\u003C\u002Fcode>\u003C\u002Fpre>\u003Cdiv class=\"clay-request-out\">\u003Cdiv class=\"clay-request-status\">Beispielantwort · 200\u003C\u002Fdiv>\u003Cpre>\u003Ccode>[\n  {\n    \"id\": 10,\n    \"name\": \"doggie\",\n    \"category\": {\n      \"id\": 1,\n      \"name\": \"Dogs\"\n    },\n    \"photoUrls\": [\n      \"string\"\n    ],\n    \"tags\": [\n      {\n        \"id\": 0,\n        \"name\": \"string\"\n      }\n    ],\n    \"status\": \"available\"\n  }\n]\u003C\u002Fcode>\u003C\u002Fpre>\u003C\u002Fdiv>\u003C\u002Fdiv>\n\u003Cp>Die Operation wird mit ihrer \u003Ccode>operationId\u003C\u002Fcode> genannt, oder mit Methode und Pfad: \u003Ccode>::: request petstore GET \u002Fpet\u002F{petId}\u003C\u002Fcode>. \u003Ccode>body:\u003C\u002Fcode> gibt einen Anfrage-Body vor, \u003Ccode>server:\u003C\u002Fcode> wählt einen der Server.\u003C\u002Fp>\n\u003Cp>Ohne API enthält eine Zelle eine ausgeschriebene Anfrage, wie in einer \u003Ccode>.http\u003C\u002Fcode>-Datei: Methode und Adresse, die Header, eine leere Zeile und der Body. Leser können alles davon ändern.\u003C\u002Fp>\n\u003Cdiv class=\"code-block\">\u003Cpre class=\"shiki shiki-themes light-plus dark-plus\" style=\"--shiki-light:#000000;--shiki-dark:#D4D4D4;--shiki-light-bg:#FFFFFF;--shiki-dark-bg:#1E1E1E\" tabindex=\"0\">\u003Ccode>\u003Cspan class=\"line\">\u003Cspan style=\"--shiki-light:#000000;--shiki-dark:#D4D4D4\">::: request\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan style=\"--shiki-light:#000000;--shiki-dark:#D4D4D4\">GET https:\u002F\u002Fpetstore3.swagger.io\u002Fapi\u002Fv3\u002Fpet\u002F10\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan style=\"--shiki-light:#000000;--shiki-dark:#D4D4D4\">Accept: application\u002Fjson\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan style=\"--shiki-light:#000000;--shiki-dark:#D4D4D4\">:::\u003C\u002Fspan>\u003C\u002Fspan>\u003C\u002Fcode>\u003C\u002Fpre>\u003Cbutton type=\"button\" class=\"copy-code btn btn-sm btn-square btn-ghost\" title=\"Code kopieren\" aria-label=\"Code kopieren\">\u003Ci class=\"fa-solid fa-copy\">\u003C\u002Fi>\u003C\u002Fbutton>\u003C\u002Fdiv>\n\u003Cdiv class=\"clay-request not-prose\" data-request=\"{&quot;method&quot;:&quot;GET&quot;,&quot;path&quot;:&quot;https:\u002F\u002Fpetstore3.swagger.io\u002Fapi\u002Fv3\u002Fpet\u002F10&quot;,&quot;servers&quot;:[],&quot;parameters&quot;:[],&quot;headers&quot;:[[&quot;Accept&quot;,&quot;application\u002Fjson&quot;]],&quot;security&quot;:[],&quot;schemes&quot;:{},&quot;values&quot;:{},&quot;raw&quot;:&quot;GET https:\u002F\u002Fpetstore3.swagger.io\u002Fapi\u002Fv3\u002Fpet\u002F10\\nAccept: application\u002Fjson&quot;}\">\u003Cdiv class=\"clay-request-head\">\u003Cspan class=\"clay-method clay-method-get\">GET\u003C\u002Fspan>\u003Ccode class=\"clay-request-path\">https:\u002F\u002Fpetstore3.swagger.io\u002Fapi\u002Fv3\u002Fpet\u002F10\u003C\u002Fcode>\u003C\u002Fdiv>\u003Cpre class=\"clay-request-code\">\u003Ccode>curl 'https:\u002F\u002Fpetstore3.swagger.io\u002Fapi\u002Fv3\u002Fpet\u002F10' \\\n  -H 'Accept: application\u002Fjson'\u003C\u002Fcode>\u003C\u002Fpre>\u003C\u002Fdiv>\n\u003Cp>Wie in einem Notebook wählt ein Klick eine Zelle aus, und \u003Ckbd>Strg\u003C\u002Fkbd> + \u003Ckbd>Enter\u003C\u002Fkbd> (\u003Ckbd>⌘\u003C\u002Fkbd> + \u003Ckbd>Enter\u003C\u002Fkbd> auf dem Mac) führt die ausgewählte aus. Ein Anfrage-Body wird beim Schreiben eingefärbt, und jeder Medientyp behält seinen eigenen: Der Wechsel zu \u003Ccode>application\u002Fxml\u003C\u002Fcode> zeigt ein XML-Beispiel. Die Antwort erscheint darunter: ihr Status, wie lange sie gedauert hat, ihre Header und ihr Body, JSON in Farben und Bilder als Bilder. Bis dahin zeigt die Zelle die Beispielantwort aus dem Dokument. \u003Cstrong>curl\u003C\u002Fstrong>, \u003Cstrong>JavaScript\u003C\u002Fstrong> und \u003Cstrong>Python\u003C\u002Fstrong> zeigen die Anfrage als Code zum Kopieren.\u003C\u002Fp>\n\u003Ch3 id=\"zugangsdaten\">\u003Ca class=\"heading-anchor\" href=\"#zugangsdaten\" aria-label=\"Link zu diesem Abschnitt\" data-route=\"#zugangsdaten\">#\u003C\u002Fa>Zugangsdaten\u003C\u002Fh3>\n\u003Cp>Leser geben Schlüssel, Passwörter und Tokens einmal pro API ein, wie mit dem \u003Cem>Authorize\u003C\u002Fem>-Knopf von Swagger UI: in der Übersicht der API unter \u003Cem>Authentifizierung\u003C\u002Fem>, oder mit \u003Cstrong>Autorisieren\u003C\u002Fstrong> in einer beliebigen Zelle, die die Methoden ihrer Operation zeigt, jede in einem Tab. Jede Zelle der API nutzt sie. Sie bleiben im Browser-Tab, außer der Leser wählt \u003Cem>Auf diesem Gerät merken\u003C\u002Fem>, und werden nur an die API selbst gesendet. Codebeispiele zeigen stattdessen Platzhalter.\u003C\u002Fp>\n\u003Ctable>\n\u003Cthead>\n\u003Ctr>\n\u003Cth>Im Dokument\u003C\u002Fth>\n\u003Cth>In der Zelle\u003C\u002Fth>\n\u003C\u002Ftr>\n\u003C\u002Fthead>\n\u003Ctbody>\u003Ctr>\n\u003Ctd>\u003Ccode>apiKey\u003C\u002Fcode> im Header oder in der Query\u003C\u002Ftd>\n\u003Ctd>Der Schlüssel\u003C\u002Ftd>\n\u003C\u002Ftr>\n\u003Ctr>\n\u003Ctd>\u003Ccode>http\u003C\u002Fcode>: \u003Ccode>basic\u003C\u002Fcode>, \u003Ccode>bearer\u003C\u002Fcode> und andere\u003C\u002Ftd>\n\u003Ctd>Benutzername und Passwort, oder das Token\u003C\u002Ftd>\n\u003C\u002Ftr>\n\u003Ctr>\n\u003Ctd>\u003Ccode>oauth2\u003C\u002Fcode>\u003C\u002Ftd>\n\u003Ctd>Anmelden mit dem Authorization-Code-Flow (mit PKCE), implizit, mit Client Credentials oder Passwort; oder ein Token einfügen\u003C\u002Ftd>\n\u003C\u002Ftr>\n\u003Ctr>\n\u003Ctd>\u003Ccode>openIdConnect\u003C\u002Fcode>\u003C\u002Ftd>\n\u003Ctd>Anmelden beim Anbieter, den sein Discovery-Dokument nennt\u003C\u002Ftd>\n\u003C\u002Ftr>\n\u003Ctr>\n\u003Ctd>\u003Ccode>mutualTLS\u003C\u002Fcode>\u003C\u002Ftd>\n\u003Ctd>Der Browser fragt nach dem Zertifikat\u003C\u002Ftd>\n\u003C\u002Ftr>\n\u003C\u002Ftbody>\u003C\u002Ftable>\n\u003Cp>Die Anmeldung über die Seite des Anbieters kehrt zu \u003Ccode>_clay\u002Foauth-callback.html\u003C\u002Fcode> der Website zurück, z. B. \u003Ccode>https:\u002F\u002Fclay-doc.github.io\u002Fclay-example-repo\u002F_clay\u002Foauth-callback.html\u003C\u002Fcode>; trag diese Adresse beim Anbieter als Weiterleitungs-URL ein.\u003C\u002Fp>\n\u003Cdiv class=\"markdown-alert markdown-alert-note\">\n\u003Cp class=\"markdown-alert-title text-base-content\">\u003Ci class=\"fa-solid fa-sticky-note mr-2\">\u003C\u002Fi>Hinweis\u003C\u002Fp>\n\u003Cp>Anfragen gehen vom Browser des Lesers direkt an die API, deshalb muss die API Anfragen von deiner Website erlauben (\u003Ca href=\"https:\u002F\u002Fdeveloper.mozilla.org\u002Fde\u002Fdocs\u002FWeb\u002FHTTP\u002FGuides\u002FCORS\" target=\"_blank\" rel=\"noopener noreferrer\">\u003Ci class=\"fa-solid fa-arrow-up-right-from-square clay-external-icon\" aria-hidden=\"true\">\u003C\u002Fi>CORS\u003C\u002Fa>); der Petstore erlaubt alle Websites. Wenn nicht, sagt die Zelle es. Browser lassen eine Seite außerdem keine eigenen Cookies senden: Ein API-Schlüssel in einem Cookie steht nur im Code.\u003C\u002Fp>\n\u003C\u002Fdiv>\n\u003Ch2 id=\"versionen\">\u003Ca class=\"heading-anchor\" href=\"#versionen\" aria-label=\"Link zu diesem Abschnitt\" data-route=\"#versionen\">#\u003C\u002Fa>Versionen\u003C\u002Fh2>\n\u003Cp>Wenn du mit \u003Ca href=\"\u002Fclay-example-repo\u002Fde\u002Forganizing\u002Fversions\" data-route=\"\u002Fde\u002Forganizing\u002Fversions\">\u003Ccode>clay version\u003C\u002Fcode>\u003C\u002Fa> eine Version speicherst, behält sie ihre APIs, wie sie an diesem Tag sind: Clay kopiert ihre Dokumente, und die Dateien, auf die sie verweisen, nach \u003Ccode>docs\u002F&lt;version&gt;\u002F_openapi\u002F\u003C\u002Fcode>, mit ihren Einstellungen in \u003Ccode>apis.yaml\u003C\u002Fcode> daneben. Die API-Seiten und Request-Zellen der Version nutzen diese Kopien, während die aktuelle Dokumentation dem Dokument folgt, wie es sich ändert.\u003C\u002Fp>\n\u003Ch2 id=\"felder-und-endpunkte\">\u003Ca class=\"heading-anchor\" href=\"#felder-und-endpunkte\" aria-label=\"Link zu diesem Abschnitt\" data-route=\"#felder-und-endpunkte\">#\u003C\u002Fa>Felder und Endpunkte\u003C\u002Fh2>\n\u003Cp>Die API-Seiten sind in Markdown geschrieben, mit zwei Komponenten, die du auch in eigenen Seiten nutzen kannst: \u003Ccode>::: fields\u003C\u002Fcode> zeigt eine Liste von Namen mit ihrem Typ und Merkmalen: der Name als Code, dann der Typ, dann \u003Cstrong>fett\u003C\u002Fstrong> für erforderlich, \u003Cem>kursiv\u003C\u002Fem> für andere Merkmale und \u003Cdel>durchgestrichen\u003C\u002Fdel> für veraltet. \u003Ccode>::: endpoints\u003C\u002Fcode> zeigt eine Liste von Operationen mit ihrer Methode.\u003C\u002Fp>\n\u003Cdiv class=\"code-block\">\u003Cpre class=\"shiki shiki-themes light-plus dark-plus\" style=\"--shiki-light:#000000;--shiki-dark:#D4D4D4;--shiki-light-bg:#FFFFFF;--shiki-dark-bg:#1E1E1E\" tabindex=\"0\">\u003Ccode>\u003Cspan class=\"line\">\u003Cspan style=\"--shiki-light:#000000;--shiki-dark:#D4D4D4\">::: fields\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan style=\"--shiki-light:#0451A5;--shiki-dark:#6796E6\">-\u003C\u002Fspan>\u003Cspan style=\"--shiki-light:#800000;--shiki-dark:#CE9178\"> `name`\u003C\u002Fspan>\u003Cspan style=\"--shiki-light:#000000;--shiki-dark:#D4D4D4\"> string \u003C\u002Fspan>\u003Cspan style=\"--shiki-light:#000080;--shiki-light-font-weight:bold;--shiki-dark:#569CD6;--shiki-dark-font-weight:bold\">**erforderlich**\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan style=\"--shiki-light:#000000;--shiki-dark:#D4D4D4\">  Wie das Haustier heißt.\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan style=\"--shiki-light:#0451A5;--shiki-dark:#6796E6\">-\u003C\u002Fspan>\u003Cspan style=\"--shiki-light:#800000;--shiki-dark:#CE9178\"> `status`\u003C\u002Fspan>\u003Cspan style=\"--shiki-light:#000000;--shiki-dark:#D4D4D4\"> string \u003C\u002Fspan>\u003Cspan style=\"--shiki-light:#000000;--shiki-light-font-style:italic;--shiki-dark:#D4D4D4;--shiki-dark-font-style:italic\">*nur lesbar*\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan style=\"--shiki-light:#000000;--shiki-dark:#D4D4D4\">:::\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan style=\"--shiki-light:#000000;--shiki-dark:#D4D4D4\">::: endpoints\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan style=\"--shiki-light:#0451A5;--shiki-dark:#6796E6\">-\u003C\u002Fspan>\u003Cspan style=\"--shiki-light:#800000;--shiki-dark:#CE9178\"> `GET \u002Fpet\u002F{petId}`\u003C\u002Fspan>\u003Cspan style=\"--shiki-light:#000000;--shiki-dark:#D4D4D4\"> [\u003C\u002Fspan>\u003Cspan style=\"--shiki-light:#A31515;--shiki-dark:#CE9178\">Haustier nach ID finden\u003C\u002Fspan>\u003Cspan style=\"--shiki-light:#000000;--shiki-dark:#D4D4D4\">](\u003C\u002Fspan>\u003Cspan style=\"--shiki-light:#000000;--shiki-light-text-decoration:underline;--shiki-dark:#D4D4D4;--shiki-dark-text-decoration:underline\">\u002Fde\u002Fapi\u002Fpetstore\u002Fpet\u002Fget-pet-by-id\u003C\u002Fspan>\u003Cspan style=\"--shiki-light:#000000;--shiki-dark:#D4D4D4\">)\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan style=\"--shiki-light:#000000;--shiki-dark:#D4D4D4\">:::\u003C\u002Fspan>\u003C\u002Fspan>\u003C\u002Fcode>\u003C\u002Fpre>\u003Cbutton type=\"button\" class=\"copy-code btn btn-sm btn-square btn-ghost\" title=\"Code kopieren\" aria-label=\"Code kopieren\">\u003Ci class=\"fa-solid fa-copy\">\u003C\u002Fi>\u003C\u002Fbutton>\u003C\u002Fdiv>\n\u003Cdiv class=\"clay-fields not-prose\">\u003Cdiv class=\"clay-field\">\u003Cdiv class=\"clay-field-head\">\u003Ccode class=\"clay-field-name\">name\u003C\u002Fcode>\u003Cspan class=\"clay-field-type\">string\u003C\u002Fspan>\u003Cspan class=\"clay-field-flag clay-field-required\">erforderlich\u003C\u002Fspan>\u003C\u002Fdiv>\u003Cdiv class=\"clay-field-text\">\u003Cp>Wie das Haustier heißt.\u003C\u002Fp>\n\u003C\u002Fdiv>\u003C\u002Fdiv>\u003Cdiv class=\"clay-field\">\u003Cdiv class=\"clay-field-head\">\u003Ccode class=\"clay-field-name\">status\u003C\u002Fcode>\u003Cspan class=\"clay-field-type\">string\u003C\u002Fspan>\u003Cspan class=\"clay-field-flag\">nur lesbar\u003C\u002Fspan>\u003C\u002Fdiv>\u003C\u002Fdiv>\u003C\u002Fdiv>\n\u003Cul class=\"clay-endpoints not-prose\">\u003Cli>\u003Ca class=\"clay-endpoint\" href=\"\u002Fclay-example-repo\u002Fde\u002Fapi\u002Fpetstore\u002Fpet\u002Fget-pet-by-id\" data-route=\"\u002Fde\u002Fapi\u002Fpetstore\u002Fpet\u002Fget-pet-by-id\">\u003Cspan class=\"clay-method clay-method-get\">GET\u003C\u002Fspan>\u003Ccode class=\"clay-endpoint-path\">\u002F\u003Cwbr>pet\u002F\u003Cwbr>{petId}\u003C\u002Fcode>\u003Cspan class=\"clay-endpoint-title\">Haustier nach ID finden\u003C\u002Fspan>\u003C\u002Fa>\u003C\u002Fli>\u003C\u002Ful>\n\u003Ch2 id=\"für-agenten\">\u003Ca class=\"heading-anchor\" href=\"#für-agenten\" aria-label=\"Link zu diesem Abschnitt\" data-route=\"#für-agenten\">#\u003C\u002Fa>Für Agenten\u003C\u002Fh2>\n\u003Cp>Im \u003Ca href=\"\u002Fclay-example-repo\u002Fde\u002Ffeatures\u002Fai-and-agents\" data-route=\"\u002Fde\u002Ffeatures\u002Fai-and-agents\">Markdown einer Seite\u003C\u002Fa> ist eine Request-Zelle ein curl-Befehl mit einem Link zu ihrer Operation, und \u003Ccode>llms.txt\u003C\u002Fcode> führt die Seiten jeder API auf.\u003C\u002Fp>\n",[6,10,13,17,20,23],{"id":7,"text":8,"level":9},"die-seiten","Die Seiten",2,{"id":11,"text":12,"level":9},"request-zellen","Request-Zellen",{"id":14,"text":15,"level":16},"zugangsdaten","Zugangsdaten",3,{"id":18,"text":19,"level":9},"versionen","Versionen",{"id":21,"text":22,"level":9},"felder-und-endpunkte","Felder und Endpunkte",{"id":24,"text":25,"level":9},"für-agenten","Für Agenten","Seiten für jede Operation und jedes Schema eines OpenAPI-Dokuments, unter der Dokumentation in der Navigation, und Request-Zellen, um eine API direkt auf der…",null,false,"\u002F_clay\u002Fsocial\u002Fde\u002Ffeatures\u002Fopenapi.png",1792666371715]