過去数年にわたって、PHPで多くのAPIを作成する必要がありました。 それらのほとんどはRESTfulでした。 初めて興味深かった-応答形式、エラー内容、認証オプション、その他のロマンスについての何時間もの議論。 二度目は、デジャヴの気持ちが去りませんでした。 3回目はすでに明らかでした-何かを変更する必要がありました...
さて、メインプロジェクトの開発と並行して、APIを作成するタスクを4回与えられたとき、すべての「メイン」問題が既に解決されるAPIを作成するためのユニバーサルプラットフォームの作成を開始しました。
- 応答形式(エラーを含む)
- 日付のフォーマット
- ドキュメンテーション
- 承認と認証
- 検証のリクエスト
- などなど
実用的な人間として、最初は準備ができているものを探しました。 まだ何かがあります。
APIプラットフォーム
ウェブサイト:
api-platform.com非常に強力なソリューション。 symfony phpフレームワークに基づいて作成されました。 必要なものはすべて揃っています。 おそらく設定とSymfonyを介したプログラミングが好きな人にとって、これはあなたが必要とするものです。 残念ながら、私はこのカテゴリに属していません。
機敏
ウェブサイト:
apigility.orgそれほど強力なソリューションではありません。 今回は、Zendフレームワークに基づいています。 RESTfulとRPCの両方のAPIを作成するための何らかのCMSでもあります。 おそらくマウスを使ったプログラミングが好きな人には、これが必要なものです。 残念ながら、私はこのカテゴリに属していません。
他の解決策もありますが、こちらが適切な
選択です。
しかし、結局、私の心に良いものは何も選択できませんでした。 しかし、将来のプロジェクトのいくつかの原則と要件を策定することは可能でした。
- 注釈と構成ではなくコード
- のUI
- 1つのコマンドで完全なAPIを作成する
- 自動生成されたドキュメント。 注釈からではなく、コードによって可能
- シンプルさ
- 最小バイク
私の決断
私はアメリカを発見していません。 私はちょうど良いコンポーネントを取り、それらをまとめ、仕事に必要なすべての定型コードを書き、作曲家プロジェクトをまとめました。
礎石は
jsonapiプレゼンテーション
標準です。 それにより、ほぼすべての「神聖な」問題が解決されました。 フィルタリング、ソート、ページごとのナビゲーションを使用して、リクエストの形式を決定する必要がありました。 neomerxのjomer
-apiパッケージが出力を担当します(ちなみに、彼は
apiスターターパックを作成しました )。
基礎として、私は
Slim3を選び
ました 。 適切に設計され、高速で、簡単に拡張でき、シンプルです。
ORM Eloquentデータベースを使用します。 便利で、比較的高速でシンプル。
Zend ACLに基づいた権利とアクセス制御で構築されています。 権利を扱うための驚くほどシンプルなパッケージ。
JWTトークン認証
ApiDocJSを使用して、コードで記述されたコメントに基づいてドキュメントを生成します。 Swaggerを使用しないのはなぜですか? 試しましたが、apidocの方が好きでした。
コードは
githubでホストされ、プロジェクトは
packagistで利用可能です。
インストール後すぐに、必要なものがすべて揃った完全に準備されたAPIが得られます。 誰かがパッケージを仕事に適用してくれたら嬉しいです。 私はすでにそれで1つのプロジェクトを作成することができました(+ bootstrapiと並行して行ったプロジェクト)-飛行は正常です。