Was ist Hypermedia, Hypermedia-Steuerelemente, Hypermedia-Formate
Ich bin derzeit zu Lesen "Rest in practice" - Buch . Ich bin nicht in der Lage zu verstehen, die folgende Terminologie Hypermedia , hypermedia-format, hypermedia-Steuerelemente, Domain application protocol. Der Autor wurde darauf hindeutet Notwendigkeit für domain-spezifische hypermedia-format. Ich konnte es kaum Verständnis für diejenigen. Habe ich gegoogelt, diese Bedingungen aber nicht finden konnten eine richtige Antwort. Kann jemand erklären, diese Begriffe und warum brauchen wir, domain-spezifischen hypermedia-Formate anstelle von application/xml"?
InformationsquelleAutor der Frage vishnu | 2015-04-12
Du musst angemeldet sein, um einen Kommentar abzugeben.
Hypermedia = die Tatsache, dass sich client und server unterhalten sich in Bezug auf einige eine einheitliche Darstellung z.B. bei: hyper-links.
HyperMedia-Control = Eine Ressource muss sein, haben die operation durchgeführt. So zum Beispiel ein Produkt wird vertreten durch den hyperlink domain/Produkt/001
dann Ressource betrieben werden können (bearbeitet und gelöscht) auf, die durch hypermedia-control domain/Produkt/001/Bearbeiten und domain/Produkt/001/löschen.
Der größte Unterschied liegt in der Herangehensweise. prozedurale Systeme zuerst schreiben die Operationen als Zustandsübergänge in sequenziellen code (java, etc), dann die Interaktionen hergestellt werden, die als hyperlinks zu liefern HATEOAS.
Aber Systeme angesprochen wie Wechselwirkungen direkt Modell der Wechselwirkungen und der damit erzielt hyperlinks direkt. Ein Beispiel ist http://www.masterkube.com/hateoas_technology.html ist hier.
Hoffe, das hilft.
InformationsquelleAutor der Antwort Antony gonzalves
Es gibt eine Menge Verwirrung über diese, weil die meisten Anwendungen, die nennen sich REST nicht verwenden, hypermedia und sind nicht ausgeruht.
Hypermedia ist eine Verallgemeinerung von hypertext für andere Inhalte als HTML. Man kann sagen hypertext ist eine Teilmenge von hypermedia. Hypermedia kann HTML in einem browser, mit allen links, buttons und alles, was gerendert so durchsuchen Sie eine website, oder es kann eine XML-oder JSON-Dokument soll analysiert werden, die durch einen automatisierten client, der auch links Folgen und handeln wie ein Mensch tun würde, mit einem browser, klicken gerendert, links und Schaltflächen.
HATEOAS bedeutet, dass die Interaktion eines Kunden mit einer REST-Anwendung haben, müssen angetrieben werden von hypermedia, oder um es einfach auszudrücken, sollte der Kunde erhalten alle URIs für jede Ressource, die es benötigt, durch die folgenden links in die Darstellung der Ressourcen selbst, nicht indem Sie sich auf out-of-band-Informationen, wie URI-Muster gegeben in der Dokumentation, wie viele APIs.
Dies ist einfacher als es klingt. Es bedeutet nur, dass die Interaktion zwischen einer client-und einer REST-Anwendung sollte genau wie ein Mensch surfen auf einer website. Nehmen Sie Stack-Überlauf selbst zum Beispiel. Es gibt user, Fragen und Antworten. Wenn Sie sehen wollen, eine Liste Ihrer Fragen, die Sie nicht gehen, um eine Dokumentation website, bekommen eine URI-template für die Auflistung Ihrer Fragen, füllen Sie einen Platzhalter mit Ihrer Benutzer-id und fügen Sie ihn auf Ihrer brownser. Klicken Sie einfach auf einen link zu einem anderen Dokument beschrieben, wie die Liste der Fragen, und Sie nicht einmal interessiert, was der genaue URI ist. Das ist es, was HATEOAS in der Praxis bedeutet.
Einer hypermedia-forma - t definiert den Vertrag zwischen client und server. Es ist die hyperlink-fähigen Daten-format, die Sie für eine bestimmte Darstellung einer Ressource in einer hypermedia-Anwendung. Zum Beispiel, wenn Sie ein Benutzer die Ressource, die Sie haben, um zu dokumentieren, was genau Kunden sollten erwarten, dass aus einer Darstellung der Ressource und wie analysieren Sie die Darstellung, um die Informationen extrahieren. Vor der Interaktion mit der API, die Ihre Kunden benötigen, einen parser zu implementieren, um zu extrahieren die Informationen, die Sie benötigen, zu wissen, welche Eigenschaften der Ressource und was Sie bedeuten, was link-Beziehungen, die Sie zu erwarten haben und welche Zustandsübergänge sind vorhanden, usw.
Hypermedia-Steuerelemente sind die Kombinationen der Protokoll-Methoden und link-Beziehungen in einem hypermedia-format, das der client sagt was Zustandsübergänge zur Verfügung stehen und wie Sie zu erfüllen. Zum Beispiel, eine Frage, die vielleicht ein
rel=post_answer
link, den erwartet eine Antwort Darstellung, wie die payload des POST-Methode, und erstellen Sie eine neue Antwort Ressource in Bezug auf Sie.Sobald Sie haben eine Reihe von hypermedia-Formate definiert sind, müssen Sie eine domain-spezifischen Medien-Typum zu bestimmen, genau das, was hypermedia-format verwendet wird für einen bestimmten Interaktion. Einen generischen media-Typ, wie
application/xml
nur teilt dem client mit, wie die Daten analysieren-format, es sagt nichts über die extrahierten Informationen durch den parser. Zum Beispiel, sagen wir ein Dokument hat den Medien-Typapplication/vnd.mycompany.user.v1+xml
der Kunde weiß, dass es eine version 1.0 Darstellung der Benutzer-Ressource im XML-format. Wenn Sie die Ressource hinzufügen oder entfernen von Eigenschaften, links, etc, Sie können die Versionsnummer ändern und die Kunden werden nicht brechen, da Sie auf verlangen der version, die Sie implementiert wurden, indem Sie dasAccept
header. Sie können auch mehrere Formate für die gleiche Ressource, wie XML oder JSON, und sogar eine ziemlich lesbare Darstellung in HTML.Beim wickeln alles zusammen-das zugrunde liegende Protokoll HTTP; die Verträge definiert, die von hypermedia-Formate und Medientypen-Sie haben Ihre Domain Application Protocoldie die Gesamtheit der Ressourcen und verfügbaren Statusübergänge beworben, die von Ihrer Anwendung.
Unnötig zu sagen, dass 99% der so genannten REST-APIs finden Sie rund um das internet, Folgen nicht alle dieser. Die meisten von Ihnen sind einfach HTTP-APIs Folgen, dass einige der REST-constraints, manchmal, weil Sie nicht wirklich brauchen, alle von Ihnen, manchmal, weil das ist, was die Entwickler dachten REST wirklich ist.
InformationsquelleAutor der Antwort Pedro Werneck