Wie jeder vielleicht bemerkt hat, gibt es viele gefälschte / rudimentäre REST-APIs in freier Wildbahn (die eine HTTP-API implementieren und als REST bezeichnen, ohne die Anforderungen des Hypertextes als Engine des Anwendungsstatus zu befolgen, die dazu geführt haben zum berühmten Geschwätz von Roy T. Fielding , dem Mann, der zuerst das REST-Paradigma spezifizierte).
Ich konnte keine praktischen Beispiele für eine wirklich hypertextgesteuerte REST-Implementierung zusammen mit den zugehörigen anwendungsspezifischen Medientypdefinitionen für die Statusübergänge finden.
Gibt es öffentlich zugängliche Beispiele für solche Implementierungen?
Antworten:
Es ist keine Implementierung im Sinne von Code, aber ich mag den Artikel " Wie man eine Tasse Kaffee bekommt" auf InfoQ wirklich. Es beschreibt den Prozess der Bestellung eines Kaffees bei Starbucks als RESTful-Protokoll. Dies geht über den typischen REST-Einführungsartikel "Alles ist eine Ressource" hinaus und konzentriert sich auf HATEOAS. Sehr empfehlenswert.
quelle
Wie wäre es mit der Sun Cloud API ? Aus der Einleitung:
Die Hintergrundgeschichte könnte auch hilfreich sein.
quelle
Netflix verfügt über eine auf HATEOAS basierende REST-API , die Links als Teil der Ressourcen enthält.
quelle
Wird die RESTfulness of Sun Cloud API nicht tatsächlich in Roys 4. Punkt angesprochen:
Beispiel 1 Feste Ressourcennamen in einer definierten Erbschaft:
Aus der Sun Cloud-API: "... die Darstellung eines VDC enthält Darstellungen der Cluster, die es bewohnen, die wiederum Darstellungen der VMs in jedem Cluster enthalten."
Beispiel 2 Out-of-Band-Informationen, z. B. ein domänenspezifischer Standard:
Sie müssen über den Inhalt der Wiki-Seite (Out-of-Band-Informationen) verfügen, um zu wissen, dass der "Mechanismus für die Ressourcenkommunikation" für das Cloud-Ressourcenfeld "uri" GET ist.
quelle
Ich habe festgestellt, dass dies vor einiger Zeit gefragt wurde, aber ich habe versucht, einen "richtigen" REST-API-Ablauf für ein einfaches Beispiel zu demonstrieren. Ich habe versucht, Roys Regeln für REST zu befolgen - vielleicht könnte es helfen: API-Beispiel mit REST
quelle