Enomine88 schrieb:
[..]
Frage 1: Ist das so richtig dargestellt?
Frage 2: Was sind Beispiele für:
a) "offline-API"
b) WEB-API die nicht Webdienste sind
c) WEB-API REST-Webdienste
d) WEB-API REST-Ähnliche Webdienste (Siehe auch Richard Maturity Model)
e) WEB-API nicht-REST-Webdienste
?
[..]
Welche Fragen sind denn noch offen? Oder wofür hättest du noch gerne Beispiele.
2.
a)
Die meisten gehen wohl davon aus, das du weißt wie du eine Funktion aus einer Library von konventionellem Code her aus aufrufst. Jeglicher Code bzw Funktionen die du nicht aus deinem eigenen Programm sondern von Bibliotheken aus aufrufst, ist somit API-Code. Die Schnittstelle sind dann die Funktionssignaturen und Datenstrukturen, die von der Library öffentlich gemacht bzw exportiert werden.
c + d)
Du hast es sicherlich gemerkt, RESTful ist in der Praxis einfach nur ein Euphemismus für die praktische Umsetzung der REST-Prinzipien. Also eine Verballhornung eines Akronyms, deshalb auch "pun". Adjektivierung mit Suffixen (-ish, -al, -ful) geht normal nur mit Nomen.
REST
ful => Nicht ganz REST, aber größtenteils.
Wir behalten uns jederzeit vor, das wegzulassen, was uns nicht in den Kram passt oder zu aufwenig umzusetzen wäre, keinen zusätzlichen Nutzen bringt, oder weil es für uns bequemer ist. Man könnte es aber einfach auch so definieren, das man gar nicht für sich beansprucht 100% konform zu sein und damit unproduktiven akademischem Diskussionen direkt aus dem Weg geht.
Nicht REST: Indirekte Datenlöschung oder -änderung per POST (mit entsprechenden Parametern oder Schlüsselwerten)
REST: DELETE/PUT/PATCH Verben für entsprechende Operationen benutzen und Operationen dafür auf Endpunkten implementieren.
Überlegungen dazu:
https://blog.ndepend.com/rest-vs-restful/
https://martinfowler.com/articles/richardsonMaturityModel.html
Kann helfen, sich damit mal auseinandergesetzt zu haben, z.B. wenn die eigene Programmierarbeit danach bewertet wird und das aus irgendeinem Grund relevant ist (z.B. bei Behörden) oder du selbst eine Evaluierung durchführen musst, z.B. das es als Qualitätskriterium für deinen oder fremden Code verwendet wird.
Meistens spielt es aber keine Rolle, da JSON Daten erst nachträglich (manuell) verifizierbar sind und dir jeder alles schicken kann, kannst du dir von einem konformeren API nichts kaufen, Vor allem nicht wenn es räudig umgesetzt worden ist und nur allgemeine Fehler ausgibt wie HTTP 500, "Internal Server Error".
Ich reihe mich da in die Riege derjenigen ein, die dir raten abzuklären ob du darauf wirklich herumreiten solltest, da jetzt hier auch keiner weiß was genau du mit Elasticsearch gemacht hast.
Also +1 auf "das wird vermutlich eh keiner lesen, und kann wenn dann sauber referenziert in den Anhang".
e) Prinzipiell jedes API das über HTTP zur Verfügung gestellt wird, also z.B.