Startseite » Codierung » Grundlagen der REST- und RESTful-API-Entwicklung

    Grundlagen der REST- und RESTful-API-Entwicklung

    Webentwickler sprechen häufig darüber REST-Prinzipien und RESTful-Datenarchitektur, Da dies ein entscheidender Aspekt der modernen Entwicklung ist, kann es manchmal unglaublich verwirrend sein. REST ist keine Technologie für sich, sondern eher eine Methode zum Erstellen von APIs mit bestimmten Organisationsprinzipien. Diese Prinzipien dienen als Anleitung für Entwickler und zur Schaffung einer universelleren Umgebung für die Verarbeitung von API-Anforderungen.

    In diesem Beitrag möchte ich RESTful-Entwicklungspraktiken aus der Vogelperspektive erklären. Ich möchte anpacken das Was eher als das Wie. Obwohl ich auf beide Bereiche eingehen möchte, ist dieser Beitrag für jeden gedacht, der sich mit Web-Entwicklung beschäftigt, aber das Konzept der REST-APIs einfach nicht verstehen kann.

    REST für Webentwickler

    Das Akronym REST steht für Repräsentativer Zustandstransfer. Das hört sich vielleicht etwas verwirrend an, und der Wiki-Eintrag macht es noch verwirrender. Es ist jedoch möglich, die Terminologie zu vereinfachen.

    REST ist nur eine Serie von Richtlinien und Architekturstile für die Datenübertragung. Sie wird üblicherweise für Webanwendungen verwendet, kann jedoch auch Daten an Software weitergeben.

    Die Abkürzung API steht für Application Programming Interface, das sind Methoden von Verbindung mit anderen Bibliotheken oder Anwendungen. Windows verfügt über mehrere APIs und Twitter verfügt auch über eine Web-API, obwohl sie unterschiedliche Aufgaben mit unterschiedlichen Zielen ausführen.

    REST-konforme APIs sind APIs, die der REST-Architektur folgen.

    Was genau ist die REST-Architektur?

    Hier ist es schwierig, Einzelheiten festzulegen. Es gibt jedoch einige architektonische Konstanten wie:

    • Konsistenz über die gesamte API
    • Staatenlose Existenz, d. h. keine serverseitigen Sitzungen
    • Gebrauch von HTTP-Statuscodes gegebenenfalls
    • Gebrauch von URL-Endpunkte mit einer logischen Hierarchie
    • Versionierung in der URL anstatt in HTTP-Headern

    Es gibt keine übermäßig spezifischen Richtlinien wie die W3C HTML5-Spezifikation, die zu Verwirrung und einem Miasma der Unsicherheit in Bezug auf die REST-Terminologie führen könnte.

    Auch die obige Liste sollte nicht als feste Regeln betrachtet werden, Obwohl sie für die meisten modernen RESTful-APIs zutreffen.

    BILD: restful-api-design.readthedocs.io

    REST ist ein leichte Methodik Das macht es perfekt für HTTP-Daten. Aus diesem Grund wurde REST im Internet so beliebt, weshalb es allgemein als die beste Wahl für die API-Entwicklung angesehen wird.

    Wie Vinay Sahni sagt, “Eine API ist die Benutzeroberfläche eines Entwicklers.” Alles sollte einfach zu bedienen sein und eine großartige Benutzererfahrung bieten. RESTful APIs zielen genau darauf ab.

    Wichtige Schritte für RESTful-APIs

    Diese Tipps beziehen sich auf APIs ausschließlich für Webanwendungen. Das bedeutet, dass HTTP ist eine Voraussetzung, und das heißt oft Die API-Daten werden auf einem externen Server gehostet. Lassen Sie uns untersuchen, wie RESTful-APIs auf der Seite des API-Benutzers funktionieren.

    Der API-Benutzer ist der Webentwickler, der ein Skript erstellen kann, das eine Verbindung zu einem externen API-Server herstellt. Anschließend werden die erforderlichen Daten über HTTP übertragen. Der Entwickler kann dann Daten auf seiner Website anzeigen ohne persönlichen Zugriff auf den externen Server (wie beim Ziehen von Twitter-Daten).

    Im Allgemeinen gibt es vier Befehle gewöhnt an Zugriff auf RESTful-APIs:

    1. ERHALTEN ein Objekt abrufen
    2. POST zum Erstellen eines neuen Objekts
    3. STELLEN zum Ändern oder Ersetzen eines Objekts
    4. LÖSCHEN zum Entfernen eines Objekts

    Jede dieser Methoden sollte sein mit dem API-Aufruf übergeben um dem Server mitzuteilen, was er tun soll.

    Die große Mehrheit der Web-APIs nur zulassen ERHALTEN Anfragen um Daten von einem externen Server abzurufen. Die Authentifizierung ist optional, aber sicherlich eine gute Idee, wenn Sie möglicherweise schädliche Befehle wie STELLEN oder LÖSCHEN.

    Allerdings sind nicht viele RESTful-APIs so weit gegangen. Betrachten Sie Pokéapi, eine kostenlose Pokémon-API-Datenbank. Es ist für die Öffentlichkeit mit einer anständigen Ratenbegrenzung (Beschränkung der Benutzer auf eine bestimmte Anzahl von API-Anforderungen über einen bestimmten Zeitraum) zugänglich, erlaubt jedoch nur die ERHALTEN Methode für den Zugriff auf Ressourcen. Dies kann umgangssprachlich als a bezeichnet werden Nur-Verbrauch-API.

    Rückgabewerte sind auch wichtig und sollten Homogenität bewahren für alle Ressourcen. JSON ist ein beliebter Rückgabetyp mit Online-Spezifikationen, die die richtigen Datenstrukturen erklären.

    RESTful-APIs verwenden Substantive für API-Objekte, und Verben zur Durchführung von Aktionen auf diesen Objekten. Die Authentifizierung kann ein Teil davon sein, die Ratenbegrenzung kann auch ein Teil davon sein. Eine sehr einfache API kann jedoch ohne Beeinträchtigung der Benutzereinschränkungen auskommen.

    Zugriff auf API-Ressourcen

    Öffentliche APIs sind normalerweise erreichbar von direkten Website-Adressen. Das heisst Die URL-Struktur ist wichtig, und sollte nur für API-Anforderungen verwendet werden.

    Einige URLs können ein Präfix-Verzeichnis wie enthalten / v2 / für eine aktualisierte Version 2 einer früheren API. Dies ist üblich für Entwickler, die ihre 1.x-API nicht abwerten möchten, aber trotzdem die neueste Struktur anbieten möchten.

    Ich habe dieses Posting sehr genossen grundlegende URL-Strukturen und Beispiele aus anderen Diensten.

    Beachten Sie, dass der Endpunkt Rückgabedaten ändern sich dramatisch auf der Basis HTTP-Methode. Zum Beispiel, ERHALTEN ruft Inhalt ab, während POST erstellt neue Inhalte Die Anforderung kann auf denselben Endpunkt verweisen, das Ergebnis kann jedoch sehr unterschiedlich sein.

    IMAGE: Reddit-API-Dokumentation

    Wenn Sie sich Beispiele online anschauen, können Sie die Konzepte deutlicher verstehen. Wir haben schon den Pokeapi gesehen, aber hier sind einige andere reale API-Beispiele durchlesen:

    • Reddit-API
    • GitHub-API
    • Flickr-API
    • Pinterest API

    Erstellen Sie Ihre eigene API

    Der Prozess der Erstellung einer eigenen API sollte nicht leichtfertig sein, ist aber auch nicht so kompliziert, wie Sie vielleicht denken. Es braucht eine Verständnis der API-Entwurfsmuster und Best Practices etwas von echtem Wert bauen.

    Jede API muss Verbinden Sie sich mit Ihrem Server Daten irgendeiner Art zurückgeben. Dazu müssen Sie nicht nur Code schreiben, sondern auch die zurückgegebenen Daten formatieren. Andere mögliche Anforderungen umfassen Authentifizierung und Ratenbegrenzung, Daher ist der Aufbau einer API sicherlich nichts für schwache Nerven.

    Aber werfen wir einen Blick darauf einige grundlegende Grundsätze der API-Architektur.

    Endpunkte erstellen

    Ein Aspekt der API-Entwicklung ist Endpunkte bauen. Wann Ressourcen schaffen Sie möchten Nomen verwenden, keine Verben. Dies bedeutet, dass API-Daten eine Person, einen Ort oder ein Objekt zurückgeben sollten eine Sache mit bestimmten Attributen (zum Beispiel ein Tweet und alle Metadaten).

    Es kann schwierig sein, Nomen zu benennen, dies ist jedoch ein entscheidender Aspekt der API-Entwicklung. Vereinfachung ist am besten wenn immer möglich.

    Eine große Debatte ist Singular vs. Plural Substantive. Wenn Sie eine Twitter-API erstellen, haben Sie möglicherweise zuerst die Objektgruppe (d. H. Tweet) und dann das Objektelement Sekunde (d. H. Tweet-ID)..

     $ / tweet / 15032934882934 $ / Tweets / 15032934882934 

    In diesem Fall würde ich argumentieren, dass die einzelne Form besser aussieht. Dies gilt insbesondere, wenn nur eine Ressource zurückgegeben wird. Es gibt jedoch keine 100% korrekte Antwort, also tun Sie, was für Ihr Projekt am besten geeignet ist.

    Rückgabetyp festlegen

    Eine andere Überlegung ist Rückgabetypdaten. Die meisten Webbenutzer erwarten JSON-Inhalte. Dies ist wahrscheinlich die beste Option. XML ist eine andere Wahl, wenn Sie beides anbieten möchten. JSON ist jedoch der grundlegende API-Rückgabetyp unter Webentwicklern.

    Es gibt noch viel mehr in die API-Entwicklung, daher empfehle ich, zuerst mit APIs zu spielen. Auf diese Weise können Sie sehen, wie andere Entwickler ihre APIs erstellen, und Sie werden sich hoffentlich mit den typischen Anforderungen vertraut machen.

    Wenn Sie gerade erst anfangen, überlegen Sie bitte, diese Entwickler-Tutorials zu überfliegen:

    • REST-API-Lernprogramm-Site
    • Einfaches REST-API schreiben
    • Erstellen eines RESTful-Webdienstes

    Weitere Ressourcen

    Der beste Weg, um die Entwicklung von Web-Apps zu erlernen, ist durch Übung. Zugelassene Theorien sind immer ein Studium wert, da Sie sich mit Entwicklern unterhalten und verstehen können, wie die Dinge funktionieren.

    Aber ein guter Anfang ist die API-Entwicklung Verbindung zu anderen APIs zuerst. Lernen Sie die Grundlagen der clientseitigen Verbindungen kennen. Von dort können Sie mit der serverseitigen API-Entwicklung fortfahren, indem Sie Ihre eigene API von Grund auf erstellen.

    Wenn dies Ihr Ziel ist, beachten Sie bitte die folgenden Ressourcen, um auf Ihrer Reise zu helfen.

    Bücher

    • REST-API-Entwurfsregelwerk
    • RESTful-Web-APIs
    • RESTful Web Services Kochbuch
    • Ungestörtes REST: Ein Leitfaden zum Entwerfen der perfekten API

    Artikel

    • Ein Anfängerhandbuch für HTTP und REST
    • Erstellen einer RESTful-API
    • RESTful Ressourcenbenennungshandbuch
    • Erstellen einer REST-API mit dem MEAN-Stack