サーバー側でのHTMLページの組み立てから、クライアント側でのHTMLページの組み立てへと移行する傾向は、もはやトレンドではなくトレンドです。 Magento 2は、その能力を最大限に活用して時代に歩調を合わせ、データ処理とプレゼンテーションを広めようとしています 。 単純な開発者は、プレゼンテーションが十分に離れている場合、どのようにして「クリーンな」データを調べることができますか? ( tcpdumpから始まる)他にも多くの優れたソリューションがあり、 swaggerがあります。
Swaggerは、Magento 2に非常によく統合されています(「デフォルト」ストアフロントのコードを変更する愚かなアイデアがない限り)。 リモートアプリケーションの観点からMagento 2の「クリーンな」データを見始めるために必要なのは、統合されたSwaggerを使用することだけです。 この記事では、Swagger自体の使用機能については考慮せず、Magneto 2に統合されたSwaggerを匿名ユーザーモードおよび認証ユーザーモードで使用する方法の例を示します。
サービスへのアクセス
http://module.sample.flancer32.com/に 簡単なMagentoモジュールをデプロイしました。 匿名ユーザーモードでSwaggerの使用を開始するには、 http://module.sample.flancer32.com/swaggerにアクセスしてください。まず、Swaggerアプリケーション自体が(すばやく)ロードされ、次にMagentoで実装されたWebサービスの説明が(ゆっくり)ロードされます:
MagentoサービスのJSONスキームは、リンク自体からも引き出すことができます: http : //module.sample.flancer32.com/rest/default/schema? services=all
匿名クエリ
スキームの解析後、Swaggerは匿名クライアントが利用できるサービスのリストを生成します。
また、人間が読める形式でサービス自体を調査できるだけではありません。
...クエリも形成します:
...そして答えを分析します:
限定サービスへのアクセス
まず、Magentoで別のユーザーを作成する必要があります(管理アカウントを使用してサービスにアクセスすることはお勧めできません)。
彼女のアクセス権(ユーザーロール)を割り当てます。
むしろ、ロールが最初に作成され、次に作成されると、新しいユーザーに割り当てられます。 役割を通じてすべての権利を付与することも良い考えではありませんが、私も完璧ではありません。 したがって、この例では、ユーザー "swagger"にロール "Swagger"が割り当てられ、これにリソースへのアクセス権が付与されます。
Webベースのインターフェースを介した認証は提供されません。おそらくいつか誰かがMagento 2でこのポイントを終了するかもしれませんが、今のところ手動で認証する必要があります:お気に入りのユニバーサルREST APIクライアント、プログラムコード、または「カール」:
curl -X POST "http://module.sample.flancer32.com/rest/V1/integration/admin/token" \ -H "Content-Type:application/json" \ -d '{"username":"swagger", "password":"0jul4san0lRLKjYQpCqx"}'
必要なのは、認証パラメータを含む特定のJSONテキストを特定のアドレスに送信することだけです(要求コンテンツのタイプを含むヘッダーを忘れることはありません)。 応答として、制限されたサービスにアクセスするためのセッションコードが来ます。
"f6j0arlp29vx8i3av9l3eu5sag2pb5qy"
コードは引用符で囲みますが、使用しないで使用する必要があります。
さて、今、コードを持って、適切なフィールドに入力します:
...そして、すでに幅広いサービスのリストにアクセスできます。 たとえば、これに:
サービスのさらなる作業は、匿名ユーザーモードでの作業と変わりません。 認証セッションキーはSwaggerによって自動的に追加されます。
おわりに
Swaggerは素晴らしいツールであり、素晴らしいMagento 2プラットフォームに見事に統合されています。