Hässliche API

Einführung

In diesem Artikel möchte ich über die Probleme sprechen, die bei der Integration in die API über das HTTP-Protokoll aufgetreten sind, und meine Erfahrungen bei der Lösung dieser Probleme teilen.





Bei der Entwicklung von Frontend-Anwendungen (Mobile / Web) stoßen Sie häufig auf die Tatsache, dass die API im Backend noch nicht implementiert wurde. Sie müssen im Backend auf den Entwickler warten, wenn er die erforderlichen Anforderungen stellt und ihn ständig an sich selbst erinnert. Eine andere Situation ist nicht ungewöhnlich, wenn die erforderlichen http-Anforderungen bereits vorhanden sind, sie jedoch sehr schlecht und schief implementiert sind.





Vielleicht hätte ich diesen Artikel nicht geschrieben. Aber es kam mir erstaunlich vor, dass mir alle Beispiele für eine schlechte API-Implementierung in einem einzigen Projekt gleichzeitig aufgefallen sind!





In diesem Projekt entwickle ich eine mobile Anwendung in Flutter mit dem Retrofit- Paket , mit der ich die Zeit und den Code reduzieren kann, die ich selbst schreiben muss, und automatisch signifikanten Code generiere. Ich benutze Insomnia auch für die erste Überprüfung von Anfragen, bevor ich sie in den Code implementiere.





Die Videoversion ist hier verfügbar: https://www.youtube.com/watch?v=oj-i1IBejcI&t=8s





Bevor ich auf die Probleme eingehe, möchte ich darauf hinweisen, dass ich, bevor ich ein mobiler Entwickler wurde, über 5 Jahre als Full-Stack-Entwickler gearbeitet habe. Und ich verstehe, wie wichtig es ist, eine schöne API für das Frontend zu implementieren, mit der es einfach und angenehm zu integrieren und sicher ist, falls zukünftige Änderungen an der API vorgenommen werden.





Also fangen wir an.





Nicht-RESTful-Architektur

, API RESTful. , , -RESTful APIs.





REST REpresentational State Transfer. RESTful — API, HTTP. REST . , (, tasks, customers, etc.). , HTTP, CRUD , .. GET, POST, PUT, DELETE.





 





RESTful API:





API — REST — :





, , POST . type, . , , , - endpoint’ - if-else switch type .





, , RESTful, , - Retrofit, API





Header Accept: application/json

Insomnia, , . 





Insomnia, , Preview json , json . , Retrofit Dart , .





- , . : “ ”.





  Insomnia . Preview json, . Header , Content-Type , text/html, charset-utf-8, Preview json. 





, , application/json text/html, - Retrofit Dart .





Accept Header , , “ - json”. , .. Header Accept.





, :





  1. Retrofit, “”





  1. , , . , Retrofit . , , , :





, , .





JSON keys case types

json:





, . :





Dart camelCase . json camelCase , Retrofit , , json. JsonKey, snake_case, —  UPPER_CASE_SNAKE_CASE:





— , case type, , .. json b Dart . API, API , .





, . “ ”. , , , . , , , json . Insomnia, . , , — .  Insomnia , , — :





, json, ? json? ? ?





Ich weiß, dass der Server in PHP geschrieben ist. Meine Herren, die in PHP programmieren, können Sie in den Kommentaren schreiben, wie dies möglich ist?





Fazit

Jetzt erlebe ich die entgegengesetzten Gefühle. Einerseits bin ich verärgert, dass ich eine so hässliche API integrieren muss, andererseits freue ich mich schon auf den nächsten Fall, der zeigt, wie Sie die API sonst noch konfigurieren können.





Ich würde gerne wissen, welche Erfahrungen Sie mit der Integration in die API gemacht haben und auf welche Probleme Sie gestoßen sind. 





Danke. Viel Spaß beim Codieren!








All Articles