Erkennung von Aufrufen an deprecated Web-APIs in HTTP-Clients

URL
Dokumentart: Bachelor Thesis
Institut: Fachbereich Informatik
Sprache: Deutsch
Erstellungsjahr: 2024
Publikationsdatum:
Freie Schlagwörter (Deutsch): OpenAPI , HTTP-Client , Deprecation , Web-API
Freie Schlagwörter (Englisch): OpenAPI , HTTP client , deprecation , web API
DDC-Sachgruppe: Informatik
BK - Klassifikation: 54.52

Kurzfassung auf Deutsch:

Web-APIs haben sich zu einem zentralen Bestandteil in der Softwareentwicklung entwickelt. Durch die stetige Weiterentwicklung von Software können sich Anforderungen an die Web-API ändern, wodurch Schnittstellen dieser veraltet sind. Solche veralteten Schnittstellen sollten nicht mehr genutzt werden und können in neueren Versionen der Web-API eventuell auch entfernt werden. Für solche Fälle hat sich im Allgemeinen das Konzept der Kennzeichnung der Schnittstelle als deprecated durchgesetzt, welches allerdings im Kontext von Web-APIs noch wenig eingesetzt wird. In dieser Arbeit wird ein bereits existierendes Verfahren zur Erkennung von Deprecated Web-APIs, welches mit Tracing arbeitet, direkt in HTTP-Clients implementiert. Hierfür wurde das Verfahren in zwei Python (urllib3 und aiohttp) und zwei Java (OkHttp und Apache HttpComponents Client) HTTP-Clients implementiert und anschließend die Performanceveränderung evaluiert. Für die Erkennung werden die HTTP-Header der HTTP-Response und das OpenAPI-Dokument der Web-API genutzt. Außerdem werden drei Arten der Benachrichtigung – Log-Eintrag, Slack-Chatnachricht und Jira-Issue – implementiert und anhand von festgelegten Kriterien diskutiert. Die Ergebnisse zeigen, dass die Implementierung HTTP-Header, welche Deprecation indizieren, sowie deprecated Operationen und Query-Paramter in OpenAPI-Dokumenten erkennen kann. Diese Erkennung kommt allerdings mit einem nicht geringen Performanceverlust. Im Fall, dass nichts deprecated ist und kein OpenAPI-Dokument gefunden werden kann, benötigt die Implementierung im arithmetischen Mittel ca. zwei bis acht Mal so lange, wie ohne die Implementierung. In Fällen, wo ein OpenAPI-Dokument analysiert wird, erhöht sich die Ausführungszeit um einen Faktor von ca. 20 bis 30. Einzig in dem Fall, dass die HTTP-Header eine Deprecation indizieren, handelt es sich um eine geringe Verlangsamung um einen Faktor von ca. eins bis zwei. Aus der Diskussion der Benachrichtigungen geht hervor, dass sich das Jira-Issue etwas besser eignet als die Slack-Chatnachricht. Der Log-Eintrag hingegen eignet sich in den meisten Fällen nicht. Die Arbeit leistet einen Beitrag zur Erkennung von deprecated Web-APIs und schafft eine Grundlage zur Weiterentwicklung in diesem Bereich.

Hinweis zum Urherberrecht

Für Dokumente, die in elektronischer Form über Datenenetze angeboten werden, gilt uneingeschränkt das Urheberrechtsgesetz (UrhG). Insbesondere gilt:

Einzelne Vervielfältigungen, z.B. Kopien und Ausdrucke, dürfen nur zum privaten und sonstigen eigenen Gebrauch angefertigt werden (Paragraph 53 Urheberrecht). Die Herstellung und Verbreitung von weiteren Reproduktionen ist nur mit ausdrücklicher Genehmigung des Urhebers gestattet.

Der Benutzer ist für die Einhaltung der Rechtsvorschriften selbst verantwortlich und kann bei Mißbrauch haftbar gemacht werden.