問題タブ [laminas-api-tools]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
php - クライアントに送信される前に、Apigility でデータにアクセスして操作する方法は?
Zend Framework 2に基づいてApigility駆動のアプリケーションを開発しています。
現在、データベースで取得したデータをクライアントに直接送信しています。リクエストが来ると、MyResource#fetch(...)
またはMyResource#fetchAll(...)
がトリガーされ、MyService
クラスで適切なメソッドが呼び出さMyMapper
れ、 のようなメソッドでデータを取得するために呼び出されfindFooByBar(...)
ます。
応答が送信される前に、データを処理したいと思います。どうやってやるの?
Apigility ZF HAL ドキュメントには、エンティティ データが取得されてからクライアントに送信されるまでの間にエンティティ データにアクセスする方法が示されています。さて、私はこれを試しました。それは醜く、そのようなタスクには多くのコードがあります。そして...うまくいきません。ただし、ここに私の試みを投稿したい:
angularjs - Apigility の Angular js モジュールを認証する
Apigility を使用して API を作成しました。現在 API を使用して構築しているフロント エンド アプリの認証システムを設定しようとしています。
しかし、この認証システムに使用した角度認証モジュールはすべて、Apigility oAuth 2 実装と一致しませんでした。
https://github.com/lynndylanhurley/ng-token-authそのモジュールの問題は、CORS が許可されていないことです。ただし、Guzzle を使用して PHP で記述した、Angular コードが配置されているサーバーでプロキシを使用して CORS-Request を送信できます。ただし、プロキシ ng-token-auth を使用すると、すべての認証データが false であっても、リクエストを 2 回送信すると成功します。
https://github.com/sahat/satellizerこのモジュールには JWT の実装が必要ですが、Apigility Authentication セクションではドキュメントを見たことがありません。
プロジェクトを完成させるために助けが必要です。
php - ApiGility と RPC を使用してデータを作成し、適切にフォーマットされた json を返す方法
ApiGilty の RPC サービスを使用してデータを返しています。正しいプロセスが 100% 確実ではないため、これがデータをフォーマットして返す正しい方法であるかどうかを再確認したいと思います。
編集:明確にするために、データは多くのエンティティから構築されています:
メインをヒットしてすべてのサブエンティティを取得する方法はありますか? 現在、データをゼロから構築し、配列を返しています。
私のRPCコントローラーは次のとおりです。
データを作成するために、次のようなことをしています。
郵便配達員に確認すると、次のようになります。
これを参照するものが何もないので、私の質問は単純です。これについて正しい方法で行ったことがありますか?また、これはリターン コードをどのようにフォーマットする必要がありますか?
ありがとう!
mongodb - Doctrine 2 ODM MongoDB による俊敏性
API からエンティティを取得すると、エラーが発生しました:
PHP 致命的なエラー: 行 442 の /Sites/system.local/vendor/zfcampus/zf-apigility-doctrine/src/Server/Resource/DoctrineResource.php の非オブジェクトに対するメンバー関数 createQuery() の呼び出し
DoctrineResource.php (442 行目の関数 - fetchAll):
私のcomposer.json:
私のmodule.config.php:
助けてください。ありがとうございました!
php - クラス zf2 で serviceManager を動作させる方法
次のように宣言された意図したとおりに機能する、module.php で定義されたいくつかのサービスがあります。
それらを使用して、db テーブルをオブジェクトにマップします。プロジェクトのメイン クラスから問題なくアクセスできます。私のプロジェクトファイルツリーを見てください:
たとえば、userResource.php は abstractResource を拡張し、この関数は機能します。
ResourceAbstract の内部には次のものがあります。
Zf2 のドキュメントで示唆されているように、serviceManager を使用するには ServiceLocatorAwareInterface を実装する必要があります。ここまでは順調ですね。次に、Auth を呼び出す新しいクラスを追加することにしました。
このクラスは、abstractResource と大差ありません。次のように loginController で呼び出されます。
これは認証です:
ご覧のとおり、abtractResource と同じパスをたどりますが、この場合、loginController を実行するとエラーが発生します。
そして、それはこの行を指します:$user = $this->getServiceLocator()->get('Marketplace\V1\Rest\User\UserCollection')->findByEmail($email);
getServiceLocator が空であることを意味します。serviceLocator を Auth クラスで動作させることができないのに、abstractResource で動作させることができるのはなぜですか?
php - http リクエストごとに関数を呼び出す
私のApigilityプロジェクトには、さまざまなRestリソースがあり、それらはすべてクラスResourseAbstractを拡張し、そこでApigilityのニーズに応じてAbstractResourceListenerを拡張します。
たとえば、私のリソース ユーザー:
そして ResourceAbstract:
ここで、http 要求が行われるたびに関数を実行する必要があります。ブラウザーで /user を照会すると、UserResource クラスがインスタンス化されるため、ResourceAbstract を使用して、各呼び出しで何かを実行するための「解決策」を使用することでした。 ResourceAbstract 内のコンストラクターであり、これは「機能します」:
問題は、場合によっては ApiProblem を返す必要があることです (http 要求のヘッダーが正しくない) が、ご存知のように、コンストラクター関数はパラメーターを返しません。別の解決策は例外をスローすることですが、Apigility では、API に問題がある場合に ApiProblem を使用することになっています。コンストラクターのアプローチは正しいですか? これをどのように解決しますか?
api - 敏捷性のアーキテクチャ
異なるサブドメインの下でいくつかのシステムが動作しています。すべてのシステムは、モバイル クライアントによって使用されるいくつかの Restful API を提供します。ここで、これらの API を管理するための機敏性に注目しました。
しかし、アーキテクチャは私には完全に明確ではありません。API を提供するすべてのシステムは Zend Framework 2 で構築されています。すべてのシステムにアジリティ コンポーネントを追加する必要がありますか? または、apigility を使用する別のサブドメインを設定できますか? すべてのシステムの API を 1 か所から構成できますか? または、すべてのシステムごとにアジリティを構成する必要がありますか?
api.example.com で apigility にアクセスして、構成したシステムのさまざまな API を確認できれば、私にとってはうれしいことです。API は、システムのサブドメインで提供されます。たとえば、system1.example.com/api/documents system2.example.com/api/pictures などです。
これは敏捷性で可能ですか?
php - Apigility DBconnected REST アイテムが POST で見つからない
db 接続サービスをセットアップしました。テーブルと一致するようにエンティティ識別子名を変更し、3 つのフィールド (1 つは識別子) を追加し、長さの検証を行いました。get/
これ以上の変更はありません。これまでのところ、とても良いget/:id
です。問題なくできます。
問題はハーフポストです。投稿を行うとテーブルに挿入されますが、私の応答は404 item not foundです。もちろん、同じデータを投稿しようとすると、重複したキーエラーが発生します。
挿入後に not found の何が問題なのかわかりません。何か不足していますか?
3/9 更新
いくつかの投稿とグループを読んで、問題を絞り込むことができましたzf-apigility/src/DbConnectedResource.php
私のデータベースはmysqlで、主キーは文字列getLastInsertValue()
であるため、int IDを試してみると思います。
私が見つけた解決策は、敏捷性が提供する機能/シーケンスを使用した postrgress db に関連していましたが、これを解決するためのより簡単な方法があるはずです。敏捷性 - 機能。
メソッドを指定して最後に挿入された値の確認を取得するか、DbConnectedResource.php から継承してメソッドを再実装するアプローチを探していますcreate($data)
。
API/config/module.config.php
これはアンダーカテゴリで設定する必要があることはわかっていますが、そのservice_manager
方法がよくわかりません。