2016-12-02 8 views
2

RESTfulサービスを使用してWebクライアント(AngularJS)とモバイルプラットフォーム(AndroidおよびiOS)と対話する新しいプロジェクトを開始します。Zend Framework 3を使用してRESTfulサービスを構築する最良の方法

考え方は、RESTfulサービス内のビジネスロジックを隠し、Webクライアントとモバイルプラットフォームの両方で同じコードを使用することです。

私たちのサーバは、Zend Framework 3を使用してPHPで構築されています(私はフレームワークを初めて使用しています)。このアプリケーションには、何百ものサービスを持つ数十のエンティティがあります。

私はZF2にはRESTモジュールがあるようですが、ZF3用に見つけられません(少なくともドキュメントには記載されていません)。

私が持っているいくつかの質問:

  • ZF3を使ってRESTfulなサービスを提供するための最良のパスは何ですか?
  • ZFモジュールをインストールしますか? ZF3に付属しているものはありますか?
  • サービス用のコードだけでモジュールを作成しますか?他の モジュールがビジネスロジックのためにこのRESTモジュールを呼び出しますか?
+1

ZendFrameworkをベースにした[apigility](https://apigility.org/)は非常に使いやすく、RESTfullプロトコルの問題点、リクエストの検証、レスポンスのフォーマットを既に解決しています – Dragos

+0

これは本当にstackoverflowのための質問ではなく、むしろ議論の対象です。 – Dragos

+1

私が働いたプロジェクトのほとんどは、ビジネスロジックを別々のZFモジュールに保つことで、サービスを通じてデータを公開し、Apitilityのコントローラ/リソースからそれらのサービスをクエリします。 – Dragos

答えて

1

ZF3はまだAbstractRestControllerで出荷されています。これはhereです。 ApigilityはRESTアプリケーションの出発点ですが、Apigilityの一部だけを実装し、独自のロジックを構築することも考えられます。興味深いのモジュールはthe ZF-Campus GitHUB repositoryで見つけることができます:

(HAL-JSONはあなたのために働くかどうかに応じて...)

場合(ほとんどのこれらのモジュールのうちのすべてではない)がリファクタリングされてZF3をサポートします(ZF2との下位互換性もあります)。

追加の便利なモジュールがあるので、リポジトリを参照してください。

+0

コメントありがとうございました。だから私は、RESTサービス( 'RESTModule'、すなわち)、そして各エンティティグループのために一つ、' UserRestController'(ユーザ情報用)、 'SalesRestController'(販売情報用) 'InvoiceRestController'(請求書作成用)など...それは意味がありますか? – Mendes

+0

はい、意味があります。 Apigilityにはリソースリスナーがあります。この場合、各エンティティタイプに対して 'ResourceListener'があります。コレクションとシングルトンは両方とも同じコントローラ/リスナ内で処理されます。 – Wilt

関連する問題