[{"data":1,"prerenderedAt":1131},["ShallowReactive",2],{"/de-de/blog/what-is-a-rest-api-guide-and-functions":3,"navigation-de-de":347,"banner-de-de":779,"footer-de-de":787,"blog-post-authors-de-de-GitLab Germany Team":1025,"blog-related-posts-de-de-what-is-a-rest-api-guide-and-functions":1041,"blog-promotions-de-de":1067,"next-steps-de-de":1121},{"id":4,"title":5,"authors":6,"body":8,"category":326,"date":327,"description":328,"extension":329,"externalUrl":330,"faq":330,"featured":331,"heroImage":332,"meta":333,"navigation":334,"path":335,"seo":336,"slug":340,"stem":341,"tags":342,"template":345,"updatedDate":330,"__hash__":346},"blogPosts/de-de/blog/what-is-a-rest-api-guide-and-functions.md","Was ist eine REST-API? Guide & Funktionen",[7],"GitLab Germany Team",{"type":9,"value":10,"toc":302},"minimark",[11,22,31,34,39,42,45,49,52,74,77,82,85,88,92,95,98,101,105,108,111,114,118,121,124,138,141,145,148,151,155,158,161,165,168,184,187,191,194,197,211,215,224,227,230,234,238,241,244,248,257,260,263,267,270,273,276,280,283,286,289,293,296,299],[12,13,14,15,21],"p",{},"REST-APIs sind seit über zwei Jahrzehnten ein zentraler Baustein des Internets. Bei ihnen handelt es sich um Programmierschnittstellen (APIs), die den Austausch von Daten zwischen Client und Server regeln. REST-APIs unterliegen einem Satz von Bedingungen, welche der Wissenschaftler Roy Fielding im Jahr 2000 entwickelt und unter der Abkürzung REST (representational state transfer) ",[16,17,20],"a",{"href":18,"rel":19,"title":20},"https://ics.uci.edu/~fielding/pubs/dissertation/rest_arch_style.htm#sec_5_1_7",[],"festgelegt hat",".",[12,23,24,25,30],{},"REST legt die genaue technische Umsetzung dieser Schnittstellen nicht fest. Fielding hat REST vielmehr als einen „Architektur-Stil“ ",[16,26,29],{"href":27,"rel":28,"title":29},"https://www.youtube.com/watch?v=6oFAmQUM8ws",[],"bezeichnet",", der eine Vielzahl praktischer Lösungen erlaubt. Jede API, die sich innerhalb der Grenzen dieser Architektur bewegt, entspricht dem REST-Standard.",[12,32,33],{},"In diesem Artikel zeigen wir Ihnen, warum sich REST seit seiner Einführung zum dominanten Modell entwickelt hat und welche Vorteile sich für Web-Development-Teams daraus ergeben.",[35,36,38],"h2",{"id":37},"constraints-die-grundbausteine-der-rest-architektur","Constraints: Die Grundbausteine der REST-Architektur",[12,40,41],{},"REST baut auf insgesamt sechs sogenannten „Constraints“ (Einschränkungen) auf.",[12,43,44],{},"Aus ihnen ergibt sich eine Architektur, die einfach und anpassungsfähig ist und auch in einem rasch wandelnden Geschäftsumfeld langfristig Bestand haben kann.",[35,46,48],{"id":47},"definition-was-ist-eine-rest-api","Definition: Was ist eine Rest-API?",[12,50,51],{},"REST-APIs sind praktische Softwarelösungen, die auf der REST-Dokumentation aufbauen und gemäß der folgenden sechs REST-Prinzipien für ein Client-Server-Modell erstellt werden:",[53,54,55,59,62,65,68,71],"ul",{},[56,57,58],"li",{},"Unabhängigkeit zwischen Client und Server,",[56,60,61],{},"Zustandslosigkeit,",[56,63,64],{},"ein mehrschichtiges Systemmodell,",[56,66,67],{},"eine einheitliche Schnittstelle,",[56,69,70],{},"Cache-Fähigkeit und",[56,72,73],{},"ein optionales Constraint: Code on Demand.",[12,75,76],{},"In den folgenden Abschnitten betrachten wir diese Constraints genauer.",[78,79,81],"h3",{"id":80},"unabhängigkeit-zwischen-client-und-server","Unabhängigkeit zwischen Client und Server",[12,83,84],{},"REST findet wie erwähnt für APIs Anwendung, die den Austausch von Ressourcen zwischen einem Client und einem Server ermöglichen. Entscheidend ist, dass Client und Server vollkommen unabhängig voneinander bleiben.",[12,86,87],{},"So kann beispielsweise der Code des Servers verändert werden, ohne dass der Client ebenfalls Änderungen vornehmen muss, um weiterhin Informationen anfragen und erhalten zu können.",[78,89,91],{"id":90},"zustandslosigkeit","Zustandslosigkeit",[12,93,94],{},"Die Einschränkung der Zustandslosigkeit hat der REST-Architektur ihren Namen verliehen. Für APIs soll gemäß dieser Vorgabe gelten, dass für die korrekte Beantwortung einer Anfrage die übermittelten Informationen der aktuellen Sitzung ausreichen.",[12,96,97],{},"Das bedeutet: Es ist keine dauerhafte Verbindung zwischen Client und Server erforderlich und Client-Anfragen müssen auf der Server-Seite auch nicht zwischengespeichert werden.",[12,99,100],{},"Zustandslosigkeit führt zu höherer Daten- und Ausfallsicherheit. Gleichzeitig gilt aber auch: Benötigen Nutzer(innen) dieselben Informationen ein zweites Mal, müssen sämtliche Informationen der vorigen Sitzung erneut eingeben werden.",[78,102,104],{"id":103},"mehrschichtiges-systemmodell","Mehrschichtiges Systemmodell",[12,106,107],{},"Für jedes Unternehmen ist eine andere Server-Struktur optimal. Werden Informationen beispielsweise in verschiedenen Schichten gespeichert, gestaltet sich die Abfrage mehr oder weniger komplex. Das aber sollte für eine Anfrage unerheblich bleiben, solange die Daten korrekt übermittelt werden.",[12,109,110],{},"Die Einschränkung des mehrschichtigen Systemmodells ist somit das Gegenstück zur Zustandslosigkeit. Während letztere besagt, dass der Server vom Client nichts weiter benötigt als die Anfrageinformationen, verlangt das mehrschichtige Modell, dass dem Client nicht bekannt zu sein braucht, wie der Server die angeforderten Daten bereitstellt.",[12,112,113],{},"Der Server kann also mit einer Vielzahl verschiedener Architekturen arbeiten, ohne dass die REST-API-Schnittstelle beeinflusst wird.",[78,115,117],{"id":116},"einheitliche-schnittstelle","Einheitliche Schnittstelle",[12,119,120],{},"Diese Einschränkung ist etwas komplexer und wiederum aus vier Unterpunkten aufgebaut. Für Roy Fielding war sie die womöglich wichtigste der gesamten REST-API-Architektur.",[12,122,123],{},"Die einheitliche Schnittstelle fordert:",[53,125,126,129,132,135],{},[56,127,128],{},"dass jeder Datensatz über eine einzige URI eindeutig gekennzeichnet ist,",[56,130,131],{},"dass Veränderungen oder auch Löschungen der Daten nur mittels der grundlegenden Netzwerkprotokollbefehle, wie GET, POST, PUT/PATCH und DELETE, vorgenommen werden können,",[56,133,134],{},"dass jede Nachricht, die versandt wird, mittels Metadaten sämtliche Informationen bereithält, die für die Bearbeitung der Daten erforderlich ist und",[56,136,137],{},"dass, sofern erforderlich, Hyperlinks (HATEOAS) bereitgestellt werden, um weitere benötigte Informationen einzuholen.",[12,139,140],{},"Die einheitliche Schnittstelle sorgt für maximale Klarheit und eine einfache, standardisierte Client-Server-Kommunikation.",[78,142,144],{"id":143},"cache-fähigkeit","Cache-Fähigkeit",[12,146,147],{},"Zwar findet bei REST-APIs der Ressourcenaustausch zustandslos statt, zugleich aber sollten einmal angeforderte Daten aus einer Sitzung auf demselben Endgerät weiterverwendet werden können.",[12,149,150],{},"Indem REST das Cachen dieser Informationen ermöglicht, sorgt es für eine höhere Effizienz und beschleunigt viele Prozesse bedeutend.",[78,152,154],{"id":153},"code-on-demand","Code on Demand",[12,156,157],{},"Für die meisten Anwendungen reicht die Bereitstellung der Daten in der Form von XML or JSON vollkommen aus. In bestimmten Fällen aber kann es von Vorteil sein, dem Client darüber hinaus –      oder stattdessen – eine Anwendung bereitzustellen. Denken Sie dabei an Java Applets oder JavaScript.",[12,159,160],{},"Code on Demand stellt eine sinnvolle Erweiterung der REST-Architektur dar, aber sie ist als einzige der sechs Einschränkungen optional.",[35,162,164],{"id":163},"wofür-eignen-sich-rest-apis","Wofür eignen sich REST-APIs?",[12,166,167],{},"Flexibilität ist eines der Hauptmerkmale von REST-APIs. So sind sehr viele praktische Anwendungen denkbar:",[53,169,170,173,176],{},[56,171,172],{},"Ganz grundsätzlich das Abrufen und Bereitstellen von Daten. Social-Media-Seiten wie Instagram oder Facebook nutzen REST-APIs beispielsweise um Updates zu posten.",[56,174,175],{},"Gerade weil sie zustandslos sind, eignen sich REST-APIs für Cloud-Services: Auch wenn die Verbindung abbricht, können die Daten weiter genutzt werden.",[56,177,178,183],{},[16,179,182],{"href":180,"rel":181,"title":182},"https://microservices.io/",[],"Microservices"," gewinnen rasch an Beliebtheit und Bedeutung. Mit ihnen geht ein umfassender Perspektivenwechsel einher: Applikationen werden nicht mehr als riesige, in sich geschlossene Systeme gedacht, sondern als modular und aus kleineren, schlanken Elementen zusammengesetzt. REST-APIs bilden die ideale Schnittstelle zur nahtlosen Integration dieser verschiedenen Bausteine.",[12,185,186],{},"Im Laufe der letzten 20 Jahre sind Alternativen zu REST-APIs verfügbar geworden. Dennoch hat sich keine davon auf breiter Basis durchsetzen können. Ganz offensichtlich ist REST auch aktuell der beste Ansatz zum Datenaustausch im Netz.",[35,188,190],{"id":189},"was-sind-die-vorteile-einer-rest-api","Was sind die Vorteile einer Rest-     API?",[12,192,193],{},"In den frühen Tagen des Internets war SOAP (Simple object access protocol) die dominante Form des Datenaustauschs.",[12,195,196],{},"Dass sich REST seitdem durchgesetzt hat und fast ein Vierteljahrhundert lang relevant geblieben ist, lässt sich recht einfach aus seinen inhärenten Vorteilen erklären:",[53,198,199,202,205,208],{},[56,200,201],{},"SOAP vs REST: SOAP ist ein Protokoll, das Regeln und auch technische Realisierungen im Gegensatz zu REST sehr präzise vorschreibt. Daraus ergibt sich unmittelbar, dass APIs, die auf diesen Anforderungen aufbauen, weitaus komplexer als REST-APIs sind.",[56,203,204],{},"Die APIs, die gemäß der REST-Richtlinien programmiert wurden, basieren auf dem HTTP-Standard. Sie sind schnell und effizient und in nahezu jedem Kontext einsetzbar. Aus genau diesen Gründen eignen sich REST-APIs auch besonders gut für mobile Anwendungen.",[56,206,207],{},"Der Begriff der Skalierbarkeit ist bereits gefallen und er ist auch einer der maßgeblichen Argumente für die Verwendung von REST-APIs. Darunter ist zu verstehen, dass bei Erweiterungen der Server-Architektur nicht die darunter liegende Datenaustausch-Technologie verändert werden muss.",[56,209,210],{},"Einige Unternehmen setzen aus Sicherheitserwägungen immer noch auf SOAP. Allerdings sind REST-APIs keineswegs grundsätzlich unsicher. Entscheidend ist, einige grundlegende Best Practices anzuwenden – darunter die Verwendung von HTTPS sowie Autorisierung und Authentifizierung.",[35,212,214],{"id":213},"gibt-es-eine-rest-api-von-gitlab","Gibt es eine REST-API von GitLab?",[12,216,217,218,223],{},"Auch bei GitLab sind wir von den Vorzügen der REST-Architektur überzeugt. Aus diesem Grund stellen wir unseren Nutzer(inne)n eine ",[16,219,222],{"href":220,"rel":221,"title":222},"https://docs.gitlab.com/api/rest/",[],"GitLab-REST-API"," zur Verfügung.",[12,225,226],{},"Bei GitLab handelt es sich um den führenden Anbieter von DevSecOps-Lösungen. Anwender(innen) nutzen die Plattform, um sicher, fehlerfrei und kollaborativ an Entwicklungsprojekten zu arbeiten.",[12,228,229],{},"Die GitLab-API kann sowohl genutzt werden, um öffentlich sichtbare, als auch nicht öffentliche Daten (nach erfolgter Authentifizierung und Autorisierung) abzurufen. Weil die API unmittelbar auf GitLab abgestimmt ist, erfolgt der Austausch sicher, schnell und effizient.",[35,231,233],{"id":232},"rest-api-faqs","REST-API FAQs",[78,235,237],{"id":236},"ist-rest-ein-standard","Ist REST ein Standard?",[12,239,240],{},"REST ist ein Satz aus sechs Einschränkungen, die den Datenaustausch in einer Client-Server-Beziehung regeln. Alle API-Schnittstellen, die diesen Vorgaben entsprechen, sind „RESTful“.\nEs ist somit nicht falsch, REST als einen Standard zu bezeichnen. Allerdings gilt dies weniger im Sinne eines Protokolls oder konkreter Anweisungen. REST gibt vielmehr Leitlinien und Anforderungen vor, deren Umsetzung zu gewünschten Ergebnissen führen, unabhängig davon, wie diese technisch realisiert werden.",[12,242,243],{},"Aus diesem Grund wird REST zumeist als ein „Architektur-Stil“ definiert.",[78,245,247],{"id":246},"muss-ich-alle-sechs-rest-einschränkungen-befolgen","Muss ich alle sechs REST-Einschränkungen befolgen?",[12,249,250,251,256],{},"Roy Fielding hat hierzu persönlich im Laufe der Jahre mehrfach ",[16,252,255],{"href":253,"rel":254,"title":255},"https://www.infoq.com/articles/roy-fielding-on-versioning/",[],"Stellung bezogen",". Seine Ansichten zu dieser Frage sind eindeutig: REST ist nicht in allen Fällen zwangsläufig die beste Option. Wenn man aber eine REST-konforme Architektur wünscht, müssen sämtliche Constraints ausnahmslos umgesetzt werden.",[12,258,259],{},"Eine API beispielsweise, die alle Einschränkungen umsetzt, bei der aber keine Daten gecached werden können, ist nicht RESTful.",[12,261,262],{},"Die einzige Ausnahme ist Code on Demand. Diese Einschränkung ist optional und muss somit nicht umgesetzt werden, damit eine REST-API die Kriterien erfüllt.",[78,264,266],{"id":265},"wie-passen-cache-fähigkeit-und-zustandslosigkeit-zusammen","Wie passen Cache-Fähigkeit und Zustandslosigkeit zusammen?",[12,268,269],{},"Zwischen den Einschränkungen der Cache-Fähigkeit und Zustandslosigkeit scheint ein Spannungsverhältnis zu bestehen. Wenn bei jeder Anfrage die Daten neu übermittelt werden müssen, widerspricht das Zwischenspeichern von Daten im Cache dann nicht dieser Forderung?",[12,271,272],{},"In Wahrheit fordert Zustandslosigkeit lediglich, dass der Server jede Anfrage so behandelt, als wäre sie die erste. Es besteht keine Zuordnung der Daten im Cache zu einer aktuellen Anfrage.",[12,274,275],{},"Das Cachen der Daten dient lediglich einer höheren Effizienz und sorgt für Stabilität.",[78,277,279],{"id":278},"was-bedeutet-der-begriff-idempotenz-im-zusammenhang-mit-rest-apis","Was bedeutet der Begriff Idempotenz im Zusammenhang mit REST-APIs?",[12,281,282],{},"Wenn ein Client dieselbe Anfrage mehrfach nacheinander stellt, spricht man von Idempotenz. Das kann entweder passieren, weil die Verbindung instabil oder der Code fehlerhaft ist.",[12,284,285],{},"Entscheidend ist, dass eine solche idempotente Anfrage nicht zu einem Fehler bei der Beantwortung der Anfrage führt.",[12,287,288],{},"Die Einschränkung der Cache-Fähigkeit sorgt dafür, dass idempotente Anfragen als solche erkannt und fehlerfrei bearbeitet werden können.",[78,290,292],{"id":291},"wie-lassen-sich-rest-apis-sichern","Wie lassen sich Rest-APIs sichern?",[12,294,295],{},"REST-APIs können sehr effektiv gesichert werden.",[12,297,298],{},"Übliche und sehr effiziente Methoden sind die Verwendung von HTTPS und API-Schlüsseln, die Durchführung von Authentifizierungen und Autorisierungen sowie die Durchführung einer Input-Validation und eines Audit-Loggings.",[12,300,301],{},"Auch die Begrenzung der Anfragen in einem bestimmten Zeitfenster im Sinne eines Rate-Limiting empfiehlt sich.",{"title":303,"searchDepth":304,"depth":304,"links":305},"",2,[306,307,316,317,318,319],{"id":37,"depth":304,"text":38},{"id":47,"depth":304,"text":48,"children":308},[309,311,312,313,314,315],{"id":80,"depth":310,"text":81},3,{"id":90,"depth":310,"text":91},{"id":103,"depth":310,"text":104},{"id":116,"depth":310,"text":117},{"id":143,"depth":310,"text":144},{"id":153,"depth":310,"text":154},{"id":163,"depth":304,"text":164},{"id":189,"depth":304,"text":190},{"id":213,"depth":304,"text":214},{"id":232,"depth":304,"text":233,"children":320},[321,322,323,324,325],{"id":236,"depth":310,"text":237},{"id":246,"depth":310,"text":247},{"id":265,"depth":310,"text":266},{"id":278,"depth":310,"text":279},{"id":291,"depth":310,"text":292},"devsecops","2024-10-16","REST-APIs sind der de-facto-Standard für die Kommunikation zwischen Server und Client. Erfahren Sie hier alles Wissenswerte zum Thema!","md",null,false,"https://res.cloudinary.com/about-gitlab-com/image/upload/v1749662858/Blog/Hero%20Images/API-REST.jpg",{},true,"/de-de/blog/what-is-a-rest-api-guide-and-functions",{"title":5,"description":328,"ogTitle":5,"ogDescription":328,"noIndex":331,"ogImage":332,"ogUrl":337,"ogSiteName":338,"ogType":339,"canonicalUrls":337},"https://about.gitlab.com/blog/what-is-a-rest-api-guide-and-functions","https://about.gitlab.com","article","what-is-a-rest-api-guide-and-functions","de-de/blog/what-is-a-rest-api-guide-and-functions",[343,344],"DevOps","DevSecOps","BlogPost","G0jBhwAdEaltPn1OVWEc5jQ6K9YJISxqLat9Qp4XS_M",{"logo":348,"freeTrial":353,"sales":358,"login":363,"items":368,"search":697,"minimal":731,"duo":749,"switchNav":758,"pricingDeployment":769},{"config":349},{"href":350,"dataGaName":351,"dataGaLocation":352},"/de-de/","gitlab logo","header",{"text":354,"config":355},"Kostenlose Testversion anfordern",{"href":356,"dataGaName":357,"dataGaLocation":352},"https://gitlab.com/-/trial_registrations/new?glm_source=about.gitlab.com/de-de&glm_content=default-saas-trial/","free trial",{"text":359,"config":360},"Demo anfordern",{"href":361,"dataGaName":362,"dataGaLocation":352},"/de-de/sales/?contact-topic=request-demo","sales",{"text":364,"config":365},"Anmelden",{"href":366,"dataGaName":367,"dataGaLocation":352},"https://gitlab.com/users/sign_in/","sign in",[369,398,500,505,619,675],{"text":370,"config":371,"menu":373},"Plattform",{"dataNavLevelOne":372},"platform",{"type":374,"columns":375},"cards",[376,382,390],{"title":370,"description":377,"link":378},"Die intelligente Orchestrierungsplattform für DevSecOps",{"text":379,"config":380},"Die Plattform erkunden",{"href":381,"dataGaName":372,"dataGaLocation":352},"/de-de/platform/",{"title":383,"description":384,"link":385},"GitLab Duo Agent Platform","Agentische KI für den gesamten Software-Lebenszyklus",{"text":386,"config":387},"Lerne GitLab Duo kennen",{"href":388,"dataGaName":389,"dataGaLocation":352},"/de-de/gitlab-duo-agent-platform/","gitlab duo agent platform",{"title":391,"description":392,"link":393},"Warum GitLab?","Erfahre, warum sich Unternehmen für GitLab entscheiden",{"text":394,"config":395},"Mehr erfahren",{"href":396,"dataGaName":397,"dataGaLocation":352},"/de-de/why-gitlab/","why gitlab",{"text":399,"left":334,"config":400,"menu":402},"Produkt",{"dataNavLevelOne":401},"solutions",{"type":403,"link":404,"columns":408,"feature":479},"lists",{"text":405,"config":406},"Alle Lösungen anzeigen",{"href":407,"dataGaName":401,"dataGaLocation":352},"/de-de/solutions/",[409,434,457],{"title":410,"description":411,"link":412,"items":417},"Automatisierung","CI/CD und Automatisierung zur Beschleunigung der Bereitstellung",{"config":413},{"icon":414,"href":415,"dataGaName":416,"dataGaLocation":352},"AutomatedCodeAlt","/de-de/solutions/delivery-automation/","automated software delivery",[418,422,425,430],{"text":419,"config":420},"CI/CD",{"href":421,"dataGaLocation":352,"dataGaName":419},"/de-de/solutions/continuous-integration/",{"text":383,"config":423},{"href":388,"dataGaLocation":352,"dataGaName":424},"gitlab duo agent platform - product menu",{"text":426,"config":427},"Quellcodeverwaltung",{"href":428,"dataGaLocation":352,"dataGaName":429},"/de-de/solutions/source-code-management/","Source Code Management",{"text":431,"config":432},"Automatische Softwarebereitstellung",{"href":415,"dataGaLocation":352,"dataGaName":433},"Automated software delivery",{"title":435,"description":436,"link":437,"items":442},"Sicherheit","Entwickle Code schneller ohne Abstriche bei der Sicherheit",{"config":438},{"href":439,"dataGaName":440,"dataGaLocation":352,"icon":441},"/de-de/solutions/application-security-testing/","security and compliance","ShieldCheckLight",[443,447,452],{"text":444,"config":445},"Anwendungssicherheitstests",{"href":439,"dataGaName":446,"dataGaLocation":352},"Application security testing",{"text":448,"config":449},"Schutz der Software-Lieferkette",{"href":450,"dataGaLocation":352,"dataGaName":451},"/de-de/solutions/supply-chain/","Software supply chain security",{"text":453,"config":454},"Software-Compliance",{"href":455,"dataGaName":456,"dataGaLocation":352},"/de-de/solutions/software-compliance/","software compliance",{"title":458,"link":459,"items":464},"Messung",{"config":460},{"icon":461,"href":462,"dataGaName":463,"dataGaLocation":352},"DigitalTransformation","/de-de/solutions/visibility-measurement/","visibility and measurement",[465,469,474],{"text":466,"config":467},"Sichtbarkeit und Messung",{"href":462,"dataGaLocation":352,"dataGaName":468},"Visibility and Measurement",{"text":470,"config":471},"Wertstrommanagement",{"href":472,"dataGaLocation":352,"dataGaName":473},"/de-de/solutions/value-stream-management/","Value Stream Management",{"text":475,"config":476},"Analysen und Einblicke",{"href":477,"dataGaLocation":352,"dataGaName":478},"/de-de/solutions/analytics-and-insights/","Analytics and insights",{"title":480,"type":403,"items":481},"GitLab für",[482,488,494],{"text":483,"config":484},"Enterprise",{"icon":485,"href":486,"dataGaLocation":352,"dataGaName":487},"Building","/de-de/enterprise/","enterprise",{"text":489,"config":490},"Kleinunternehmen",{"icon":491,"href":492,"dataGaLocation":352,"dataGaName":493},"Work","/de-de/small-business/","small business",{"text":495,"config":496},"Öffentlicher Sektor",{"icon":497,"href":498,"dataGaLocation":352,"dataGaName":499},"Organization","/de-de/solutions/public-sector/","public sector",{"text":501,"config":502},"Preise",{"href":503,"dataGaName":504,"dataGaLocation":352,"dataNavLevelOne":504},"/de-de/pricing/","pricing",{"text":506,"config":507,"menu":509},"Ressourcen",{"dataNavLevelOne":508},"resources",{"type":403,"link":510,"columns":514,"feature":608},{"text":511,"config":512},"Alle Ressourcen anzeigen",{"href":513,"dataGaName":508,"dataGaLocation":352},"/de-de/resources/",[515,548,575],{"title":516,"items":517},"Erste Schritte",[518,523,528,533,538,543],{"text":519,"config":520},"Installieren",{"href":521,"dataGaName":522,"dataGaLocation":352},"/de-de/install/","install",{"text":524,"config":525},"Kurzanleitungen",{"href":526,"dataGaName":527,"dataGaLocation":352},"/de-de/get-started/","quick setup checklists",{"text":529,"config":530},"Lernen",{"href":531,"dataGaLocation":352,"dataGaName":532},"https://university.gitlab.com/","learn",{"text":534,"config":535},"Produktdokumentation",{"href":536,"dataGaName":537,"dataGaLocation":352},"https://docs.gitlab.com/","product documentation",{"text":539,"config":540},"Best-Practice-Videos",{"href":541,"dataGaName":542,"dataGaLocation":352},"/de-de/getting-started-videos/","best practice videos",{"text":544,"config":545},"Integrationen",{"href":546,"dataGaName":547,"dataGaLocation":352},"/de-de/integrations/","integrations",{"title":549,"items":550},"Entdecken",[551,556,561,566,570],{"text":552,"config":553},"Kundenerfolge",{"href":554,"dataGaName":555,"dataGaLocation":352},"/de-de/customers/","customer success stories",{"text":557,"config":558},"Blog",{"href":559,"dataGaName":560,"dataGaLocation":352},"/de-de/blog/","blog",{"text":562,"config":563},"Demo-Hub",{"href":564,"dataGaName":565,"dataGaLocation":352},"/de-de/demo-hub/","demo hub",{"text":567,"config":568},"The Source",{"href":569,"dataGaName":560,"dataGaLocation":352},"/de-de/the-source/",{"text":571,"config":572},"Remote",{"href":573,"dataGaName":574,"dataGaLocation":352},"https://handbook.gitlab.com/handbook/company/culture/all-remote/","remote",{"title":576,"items":577},"Vernetzen",[578,583,588,593,598,603],{"text":579,"config":580},"GitLab-Services",{"href":581,"dataGaName":582,"dataGaLocation":352},"/de-de/services/","services",{"text":584,"config":585},"Beitragen",{"href":586,"dataGaName":587,"dataGaLocation":352},"https://contributors.gitlab.com","contribute",{"text":589,"config":590},"Community",{"href":591,"dataGaName":592,"dataGaLocation":352},"/community/","community",{"text":594,"config":595},"Forum",{"href":596,"dataGaName":597,"dataGaLocation":352},"https://forum.gitlab.com/","forum",{"text":599,"config":600},"Veranstaltungen",{"href":601,"dataGaName":602,"dataGaLocation":352},"/events/","events",{"text":604,"config":605},"Partner",{"href":606,"dataGaName":607,"dataGaLocation":352},"/de-de/partners/","partners",{"config":609,"title":612,"text":613,"link":614},{"background":610,"textColor":611},"url('https://res.cloudinary.com/about-gitlab-com/image/upload/v1777322348/qpq8yrgn8knii57omj0c.png')","#000","Neues bei GitLab","Über die neuesten Funktionen und Verbesserungen auf dem Laufenden bleiben.",{"text":615,"config":616},"Aktuelle Nachrichten",{"href":617,"dataGaName":618,"dataGaLocation":352},"/de-de/whats-new/","whats new",{"text":620,"config":621,"menu":623},"Unternehmen",{"dataNavLevelOne":622},"company",{"type":403,"columns":624},[625],{"items":626},[627,632,638,640,645,650,655,660,665,670],{"text":628,"config":629},"Über",{"href":630,"dataGaName":631,"dataGaLocation":352},"/de-de/company/","about",{"text":633,"config":634,"footerGa":637},"Karriere",{"href":635,"dataGaName":636,"dataGaLocation":352},"/jobs/","jobs",{"dataGaName":636},{"text":599,"config":639},{"href":601,"dataGaName":602,"dataGaLocation":352},{"text":641,"config":642},"Geschäftsführung",{"href":643,"dataGaName":644,"dataGaLocation":352},"/company/team/e-group/","leadership",{"text":646,"config":647},"Handbuch",{"href":648,"dataGaName":649,"dataGaLocation":352},"https://handbook.gitlab.com/","handbook",{"text":651,"config":652},"Investor Relations",{"href":653,"dataGaName":654,"dataGaLocation":352},"https://ir.gitlab.com/overview/default.aspx","investor relations",{"text":656,"config":657},"Trust Center",{"href":658,"dataGaName":659,"dataGaLocation":352},"/de-de/security/","trust center",{"text":661,"config":662},"AI Transparency Center",{"href":663,"dataGaName":664,"dataGaLocation":352},"/de-de/ai-transparency-center/","ai transparency center",{"text":666,"config":667},"Newsletter",{"href":668,"dataGaName":669,"dataGaLocation":352},"/company/contact/#contact-forms","newsletter",{"text":671,"config":672},"Presse",{"href":673,"dataGaName":674,"dataGaLocation":352},"/press/","press",{"text":676,"config":677,"menu":678},"Kontakt",{"dataNavLevelOne":622},{"type":403,"columns":679},[680],{"items":681},[682,687,692],{"text":683,"config":684},"Vertrieb kontaktieren",{"href":685,"dataGaName":686,"dataGaLocation":352},"/de-de/sales/","talk to sales",{"text":688,"config":689},"Support-Portal",{"href":690,"dataGaName":691,"dataGaLocation":352},"https://support.gitlab.com/hc/en-us","support portal",{"text":693,"config":694},"Kundenportal",{"href":695,"dataGaName":696,"dataGaLocation":352},"https://customers.gitlab.com/customers/sign_in/","customer portal",{"close":698,"login":699,"suggestions":706},"Schließen",{"text":700,"link":701},"Um Repositorys und Projekte zu durchsuchen, melde dich an bei",{"text":702,"config":703},"gitlab.com",{"href":366,"dataGaName":704,"dataGaLocation":705},"search login","search",{"text":707,"default":708},"Vorschläge",[709,711,716,718,723,728],{"text":383,"config":710},{"href":388,"dataGaName":383,"dataGaLocation":705},{"text":712,"config":713},"Codevorschläge (KI)",{"href":714,"dataGaName":715,"dataGaLocation":705},"/de-de/solutions/code-suggestions/","Code Suggestions (AI)",{"text":419,"config":717},{"href":421,"dataGaName":419,"dataGaLocation":705},{"text":719,"config":720},"GitLab auf AWS",{"href":721,"dataGaName":722,"dataGaLocation":705},"/de-de/partners/technology-partners/aws/","GitLab on AWS",{"text":724,"config":725},"GitLab auf Google Cloud",{"href":726,"dataGaName":727,"dataGaLocation":705},"/de-de/partners/technology-partners/google-cloud-platform/","GitLab on Google Cloud",{"text":391,"config":729},{"href":396,"dataGaName":730,"dataGaLocation":705},"Why GitLab?",{"freeTrial":732,"mobileIcon":737,"desktopIcon":742,"secondaryButton":745},{"text":733,"config":734},"Kostenlos testen",{"href":735,"dataGaName":357,"dataGaLocation":736},"https://gitlab.com/-/trials/new/","nav",{"altText":738,"config":739},"GitLab-Symbol",{"src":740,"dataGaName":741,"dataGaLocation":736},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1758203874/jypbw1jx72aexsoohd7x.svg","gitlab icon",{"altText":738,"config":743},{"src":744,"dataGaName":741,"dataGaLocation":736},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1758203875/gs4c8p8opsgvflgkswz9.svg",{"text":516,"config":746},{"href":747,"dataGaName":748,"dataGaLocation":736},"https://gitlab.com/-/trial_registrations/new?glm_source=about.gitlab.com/de-de/get-started/","get started",{"freeTrial":750,"mobileIcon":754,"desktopIcon":756},{"text":751,"config":752},"Mehr über GitLab Duo erfahren",{"href":388,"dataGaName":753,"dataGaLocation":736},"gitlab duo",{"altText":738,"config":755},{"src":740,"dataGaName":741,"dataGaLocation":736},{"altText":738,"config":757},{"src":744,"dataGaName":741,"dataGaLocation":736},{"button":759,"mobileIcon":764,"desktopIcon":766},{"text":760,"config":761},"/Option",{"href":762,"dataGaName":763,"dataGaLocation":736},"#contact","switch",{"altText":738,"config":765},{"src":740,"dataGaName":741,"dataGaLocation":736},{"altText":738,"config":767},{"src":768,"dataGaName":741,"dataGaLocation":736},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1773335277/ohhpiuoxoldryzrnhfrh.png",{"freeTrial":770,"mobileIcon":775,"desktopIcon":777},{"text":771,"config":772},"Zurück zur Preisübersicht",{"href":503,"dataGaName":773,"dataGaLocation":736,"icon":774},"back to pricing","GoBack",{"altText":738,"config":776},{"src":740,"dataGaName":741,"dataGaLocation":736},{"altText":738,"config":778},{"src":744,"dataGaName":741,"dataGaLocation":736},{"title":780,"button":781,"config":785},"GitLab Orbit ist da: die Kontextebene für KI-Agenten",{"text":394,"config":782},{"href":783,"dataGaName":784,"dataGaLocation":352},"/de-de/gitlab-orbit/","orbit",{"layout":786,"disabled":331},"release",{"data":788},{"text":789,"source":790,"edit":796,"contribute":801,"config":806,"items":811,"minimal":1014},"Git ist eine Marke von Software Freedom Conservancy und unsere Verwendung von „GitLab“ erfolgt unter Lizenz.",{"text":791,"config":792},"Quelltext der Seite anzeigen",{"href":793,"dataGaName":794,"dataGaLocation":795},"https://gitlab.com/gitlab-com/marketing/digital-experience/about-gitlab-com/","page source","footer",{"text":797,"config":798},"Diese Seite bearbeiten",{"href":799,"dataGaName":800,"dataGaLocation":795},"https://gitlab.com/gitlab-com/marketing/digital-experience/about-gitlab-com/-/blob/main/content/","web ide",{"text":802,"config":803},"Beteilige dich",{"href":804,"dataGaName":805,"dataGaLocation":795},"https://gitlab.com/gitlab-com/marketing/digital-experience/about-gitlab-com/-/blob/main/CONTRIBUTING.md/","please contribute",{"twitter":807,"facebook":808,"youtube":809,"linkedin":810},"https://twitter.com/gitlab","https://www.facebook.com/gitlab","https://www.youtube.com/channel/UCnMGQ8QHMAnVIsI3xJrihhg","https://www.linkedin.com/company/gitlab-com",[812,857,907,949,981],{"title":501,"links":813,"subMenu":828},[814,818,823],{"text":815,"config":816},"Tarife anzeigen",{"href":503,"dataGaName":817,"dataGaLocation":795},"view plans",{"text":819,"config":820},"Vorteile von Premium",{"href":821,"dataGaName":822,"dataGaLocation":795},"/de-de/pricing/premium/","why premium",{"text":824,"config":825},"Vorteile von Ultimate",{"href":826,"dataGaName":827,"dataGaLocation":795},"/de-de/pricing/ultimate/","why ultimate",[829],{"title":676,"links":830},[831,833,835,837,842,847,852],{"text":683,"config":832},{"href":685,"dataGaName":362,"dataGaLocation":795},{"text":688,"config":834},{"href":690,"dataGaName":691,"dataGaLocation":795},{"text":693,"config":836},{"href":695,"dataGaName":696,"dataGaLocation":795},{"text":838,"config":839},"Status",{"href":840,"dataGaName":841,"dataGaLocation":795},"https://status.gitlab.com/","status",{"text":843,"config":844},"Nutzungsbedingungen",{"href":845,"dataGaName":846,"dataGaLocation":795},"/terms/","terms of use",{"text":848,"config":849},"Datenschutzerklärung",{"href":850,"dataGaName":851,"dataGaLocation":795},"/de-de/privacy/","privacy statement",{"text":853,"config":854},"Cookie-Einstellungen",{"dataGaName":855,"dataGaLocation":795,"id":856,"isOneTrustButton":334},"cookie preferences","ot-sdk-btn",{"title":399,"links":858,"subMenu":867},[859,863],{"text":860,"config":861},"DevSecOps-Plattform",{"href":381,"dataGaName":862,"dataGaLocation":795},"devsecops platform",{"text":864,"config":865},"KI-unterstützte Entwicklung",{"href":388,"dataGaName":866,"dataGaLocation":795},"ai-assisted development",[868],{"title":869,"links":870},"Themen",[871,875,880,884,889,892,897,902],{"text":419,"config":872},{"href":873,"dataGaName":874,"dataGaLocation":795},"/de-de/topics/ci-cd/","cicd",{"text":876,"config":877},"GitOps",{"href":878,"dataGaName":879,"dataGaLocation":795},"/de-de/topics/gitops/","gitops",{"text":343,"config":881},{"href":882,"dataGaName":883,"dataGaLocation":795},"/de-de/topics/devops/","devops",{"text":885,"config":886},"Versionskontrolle",{"href":887,"dataGaName":888,"dataGaLocation":795},"/de-de/topics/version-control/","version control",{"text":344,"config":890},{"href":891,"dataGaName":326,"dataGaLocation":795},"/de-de/topics/devsecops/",{"text":893,"config":894},"Cloud-nativ",{"href":895,"dataGaName":896,"dataGaLocation":795},"/de-de/topics/cloud-native/","cloud native",{"text":898,"config":899},"KI für das Programmieren",{"href":900,"dataGaName":901,"dataGaLocation":795},"/de-de/topics/devops/ai-for-coding/","ai for coding",{"text":903,"config":904},"Agentische KI",{"href":905,"dataGaName":906,"dataGaLocation":795},"/de-de/topics/agentic-ai/","agentic ai",{"title":908,"links":909},"Lösungen",[910,913,915,920,924,927,930,933,935,937,939,944],{"text":444,"config":911},{"href":439,"dataGaName":912,"dataGaLocation":795},"Application Security Testing",{"text":431,"config":914},{"href":415,"dataGaName":416,"dataGaLocation":795},{"text":916,"config":917},"Agile Entwicklung",{"href":918,"dataGaName":919,"dataGaLocation":795},"/de-de/solutions/agile-delivery/","agile delivery",{"text":921,"config":922},"SCM",{"href":428,"dataGaName":923,"dataGaLocation":795},"source code management",{"text":419,"config":925},{"href":421,"dataGaName":926,"dataGaLocation":795},"continuous integration & delivery",{"text":470,"config":928},{"href":472,"dataGaName":929,"dataGaLocation":795},"value stream management",{"text":876,"config":931},{"href":932,"dataGaName":879,"dataGaLocation":795},"/de-de/solutions/gitops/",{"text":483,"config":934},{"href":486,"dataGaName":487,"dataGaLocation":795},{"text":489,"config":936},{"href":492,"dataGaName":493,"dataGaLocation":795},{"text":495,"config":938},{"href":498,"dataGaName":499,"dataGaLocation":795},{"text":940,"config":941},"Bildungswesen",{"href":942,"dataGaName":943,"dataGaLocation":795},"/de-de/solutions/education/","education",{"text":945,"config":946},"Finanzdienstleistungen",{"href":947,"dataGaName":948,"dataGaLocation":795},"/de-de/solutions/finance/","financial services",{"title":506,"links":950},[951,953,955,957,960,962,965,967,969,971,973,975,977,979],{"text":519,"config":952},{"href":521,"dataGaName":522,"dataGaLocation":795},{"text":524,"config":954},{"href":526,"dataGaName":527,"dataGaLocation":795},{"text":529,"config":956},{"href":531,"dataGaName":532,"dataGaLocation":795},{"text":534,"config":958},{"href":536,"dataGaName":959,"dataGaLocation":795},"docs",{"text":557,"config":961},{"href":559,"dataGaName":560,"dataGaLocation":795},{"text":963,"config":964},"Neuerungen",{"href":617,"dataGaName":618,"dataGaLocation":795},{"text":552,"config":966},{"href":554,"dataGaName":555,"dataGaLocation":795},{"text":571,"config":968},{"href":573,"dataGaName":574,"dataGaLocation":795},{"text":579,"config":970},{"href":581,"dataGaName":582,"dataGaLocation":795},{"text":584,"config":972},{"href":586,"dataGaName":587,"dataGaLocation":795},{"text":589,"config":974},{"href":591,"dataGaName":592,"dataGaLocation":795},{"text":594,"config":976},{"href":596,"dataGaName":597,"dataGaLocation":795},{"text":599,"config":978},{"href":601,"dataGaName":602,"dataGaLocation":795},{"text":604,"config":980},{"href":606,"dataGaName":607,"dataGaLocation":795},{"title":620,"links":982},[983,985,987,989,991,993,998,1003,1005,1007,1009],{"text":628,"config":984},{"href":630,"dataGaName":622,"dataGaLocation":795},{"text":633,"config":986},{"href":635,"dataGaName":636,"dataGaLocation":795},{"text":641,"config":988},{"href":643,"dataGaName":644,"dataGaLocation":795},{"text":646,"config":990},{"href":648,"dataGaName":649,"dataGaLocation":795},{"text":651,"config":992},{"href":653,"dataGaName":654,"dataGaLocation":795},{"text":994,"config":995},"Nachhaltigkeit",{"href":996,"dataGaName":997,"dataGaLocation":795},"/sustainability/","Sustainability",{"text":999,"config":1000},"Vielfalt, Inklusion und Zugehörigkeit",{"href":1001,"dataGaName":1002,"dataGaLocation":795},"/de-de/diversity-inclusion-belonging/","Diversity, inclusion and belonging",{"text":656,"config":1004},{"href":658,"dataGaName":659,"dataGaLocation":795},{"text":666,"config":1006},{"href":668,"dataGaName":669,"dataGaLocation":795},{"text":671,"config":1008},{"href":673,"dataGaName":674,"dataGaLocation":795},{"text":1010,"config":1011},"Transparenzerklärung zu moderner Sklaverei",{"href":1012,"dataGaName":1013,"dataGaLocation":795},"https://handbook.gitlab.com/handbook/legal/modern-slavery-act-transparency-statement/","modern slavery transparency statement",{"items":1015},[1016,1019,1022],{"text":1017,"config":1018},"Terms",{"href":845,"dataGaName":846,"dataGaLocation":795},{"text":1020,"config":1021},"Cookies",{"dataGaName":855,"dataGaLocation":795,"id":856,"isOneTrustButton":334},{"text":1023,"config":1024},"Datenschutz",{"href":850,"dataGaName":851,"dataGaLocation":795},[1026],{"id":1027,"title":1028,"body":330,"config":1029,"content":1031,"description":330,"extension":1035,"meta":1036,"navigation":334,"path":1037,"seo":1038,"stem":1039,"__hash__":1040},"blogAuthors/en-us/blog/authors/gitlab-germany-team.yml","Gitlab Germany Team",{"template":1030},"BlogAuthor",{"name":7,"config":1032},{"headshot":1033,"ctfId":1034},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1749659488/Blog/Author%20Headshots/gitlab-logo-extra-whitespace.png","6tNquF8jQeRRRi8k3ZXpvS","yml",{},"/en-us/blog/authors/gitlab-germany-team",{},"en-us/blog/authors/gitlab-germany-team","vGs9BT_ji6dORS29vl80DKX6mSputlQV2W7-4vW2hL8",[1042,1051,1059],{"title":1043,"description":1044,"heroImage":1045,"category":326,"date":1046,"authors":1047,"slug":1050,"externalUrl":330},"Cloud und DevOps: Warum diese Verbindung die Softwareentwicklung verändert","Cloud und DevOps konvergieren und beschleunigen die Softwarebereitstellung. Wie diese Verbindung Entwicklungszyklen verändert und die Wettbewerbsfähigkeit stärkt.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1774465167/n5hlvrsrheadeccyr1oz.png","2026-05-28",[1048,1049],"Salahddine Aberkan","Maud Leuenberger","cloud-and-devops",{"title":1052,"description":1053,"heroImage":1054,"category":326,"date":1055,"authors":1056,"slug":1058,"externalUrl":330},"GitLab-Stack mit Gitaly on Kubernetes konsolidieren","Gitaly on Kubernetes ist jetzt allgemein verfügbar. So wird es installiert.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1756500636/wmey6kqzzuhirk88w2de.png","2026-05-07",[1057],"Olivier Campeau","gitaly-on-kubernetes-generally-available",{"title":1060,"description":1061,"heroImage":1062,"category":326,"date":1063,"authors":1064,"slug":1066,"externalUrl":330},"Entwicklungszyklen mittels GitLab CI/CD automatisieren","GitLab CI/CD automatisiert Builds, Tests und Deployments in einer einheitlichen Plattform – eine Übersicht zu Funktionsweise, Kernkomponenten und Features.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1775561395/bhe1as7ttjvzltxwgo5m.png","2026-04-30",[1065,1049],"Charlotte Delbosc","what-is-gitlab-ci-cd",{"promotions":1068},[1069,1083,1095,1107],{"id":1070,"categories":1071,"header":1073,"text":1074,"button":1075,"image":1080},"ai-modernization",[1072],"ai","Hält KI, was uns versprochen wurde?","Das Quiz dauert maximal 5 Minuten.",{"text":1076,"config":1077},"Ermittle deinen KI-Reifegrad",{"href":1078,"dataGaName":1079,"dataGaLocation":560},"/de-de/assessments/ai-modernization-assessment/","modernization assessment",{"config":1081},{"src":1082},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1772138786/qix0m7kwnd8x2fh1zq49.png",{"id":1084,"categories":1085,"header":1087,"text":1074,"button":1088,"image":1092},"devops-modernization",[1086,326],"product","Verwaltest du Tool-Chaos oder stellst du Innovationen bereit?",{"text":1089,"config":1090},"Ermittle deinen DevOps-Reifegrad",{"href":1091,"dataGaName":1079,"dataGaLocation":560},"/de-de/assessments/devops-modernization-assessment/",{"config":1093},{"src":1094},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1772138785/eg818fmakweyuznttgid.png",{"id":1096,"categories":1097,"header":1099,"text":1074,"button":1100,"image":1104},"security-modernization",[1098],"security","Tauschst du Schnelligkeit gegen Sicherheit ein?",{"text":1101,"config":1102},"Ermittle deinen Sicherheitsreifegrad",{"href":1103,"dataGaName":1079,"dataGaLocation":560},"/de-de/assessments/security-modernization-assessment/",{"config":1105},{"src":1106},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1772138786/p4pbqd9nnjejg5ds6mdk.png",{"id":1108,"paths":1109,"header":1112,"text":1113,"button":1114,"image":1119},"github-azure-migration",[1110,1111],"migration-from-azure-devops-to-gitlab","integrating-azure-devops-scm-and-gitlab","Ist dein Team bereit für den Umzug von GitHub nach Azure?","GitHub stellt bereits auf Azure um. Finde heraus, was das für dich bedeutet.",{"text":1115,"config":1116},"Erfahre, wie GitLab im Vergleich zu GitHub abschneidet",{"href":1117,"dataGaName":1118,"dataGaLocation":560},"/de-de/compare/gitlab-vs-github/github-azure-migration/","github azure migration",{"config":1120},{"src":1094},{"header":1122,"blurb":1123,"button":1124,"secondaryButton":1129},"Beginne noch heute, schneller zu entwickeln","Entdecke, was dein Team mit der intelligenten Orchestrierungsplattform für DevSecOps erreichen kann.\n",{"text":1125,"config":1126},"Kostenlosen Test starten",{"href":1127,"dataGaName":357,"dataGaLocation":1128},"https://gitlab.com/-/trial_registrations/new?glm_content=default-saas-trial&glm_source=about.gitlab.com/de-de/","feature",{"text":683,"config":1130},{"href":685,"dataGaName":362,"dataGaLocation":1128},1786803740660]