前書き
この記事では、HTTPプロトコルを介してAPIと統合する過程で発生した問題について説明し、それらを解決した経験を共有したいと思います。
フロントエンドアプリケーション(モバイル/ Web)を開発するとき、バックエンドのAPIがまだ実装されていないという事実に出くわすことがよくあります。開発者が必要なリクエストを提供するとき、バックエンドで開発者が常に自分自身を思い出させるのを待つ必要があります。必要なhttpリクエストがすでに存在する場合、別の状況は珍しくありませんが、それらは非常に不十分で曲がりくねっています。
おそらく私はこの記事を書いていなかっただろう。しかし、以下の不十分なAPI実装のすべての例が、1つのプロジェクトで同時に私に出くわしたことに驚かされました。
このプロジェクトでは、Retrofitパッケージを使用してFlutterでモバイルアプリケーションを開発しています。これにより、自分で作成する必要のある時間とコードを削減し、重要なコードを自動的に生成できます。また、コードに実装する前のリクエストの初期チェックにもInsomniaを使用しています。
ビデオバージョンはこちらから入手できますhttps://www.youtube.com/watch?v=oj-i1IBejcI&t=8s
問題に入る前に、私がモバイル開発者になる前は、フルスタック開発者として5年以上働いていたことを指摘したいと思います。また、フロントエンドに美しいAPIを実装することがいかに重要であるかを理解しています。これにより、統合が簡単で快適になり、将来APIが変更された場合でも安全になります。
それでは、始めましょう。
非RESTfulアーキテクチャ
最初の失望は、APIアーキテクチャがRESTfulスタイルで実装されていないという事実でした。正直なところ、このような非RESTfulAPIの統合にいつ対処しなければならなかったかは覚えていません。
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.
, :
Retrofit, “”
, , . , 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? ? ?
私はサーバーがPHPで書かれていることを知っています。PHPでプログラミングする紳士、これがどのように可能であるかコメントに書いていただけませんか?
結論
今、私は反対の感情を経験しています。一方で、私はそのような醜いAPIを統合しなければならないことに腹を立てています。他方で、私はすでに次のケースを楽しみにしています。
APIとの統合の経験と、発生した問題について教えてください。
ありがとうございました。ハッピーコーディング!