問題タブ [fosrestbundle]
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.
rest - REST POST データなし?
Symfony2 で REST サービスを作成しようとしています。私はいくつかの記事をたどり、GET 関数を機能させました。オブジェクトのリストまたは特定のオブジェクトを取得できます。しかし、オブジェクトを POST でデータベースに保存することはできません。FOSRestBundle を使用しています。
エンティティ Coldlead とフォーム ColdleadType を作成し、コントローラに newAction を作成しました。しかし、bash で curl を使用して POST アクションをテストすると、FORM が情報を受け取っていないようです。
これは私が実行するコマンドです:
応答は次のとおりです。
最後のリンクが1つ足りないと思います。多分シリアライザーと何か。うまくいけば、誰かが私にヒントを与えることができます。
私が読んだ(そして試した)記事は次のとおりです。
symfony - コントローラーは応答を返す必要があります。配列が指定されています
Symfony2 で適切な REST API をセットアップする方法について、Will Durand のチュートリアルに従おうとしています。ただし、次のエラーが発生するため、最初は失敗しています。
私の非常に基本的な構成で、基本的な何かが間違っているに違いありません。構成の別の設定を試してみましたが、単一の設定が何をするのかよくわからないためfos_rest
、構成リファレンスはあまり役に立ちません。
私のセットアップ:
API は、accept ヘッダーに基づいて XML または JSON を返す必要があります。html 出力はありません。
php - FOSRestBundle と JMS シリアライザー、JSON 取得時のエラー
私は Symfony 2.2、FOSRest バンドル (JMS シリアライザーを使用)、および MongoDB を使用する Doctrine ODM を試しています。
FOSRest Bundle を正しくセットアップする方法を何時間も考えた後、まだ問題があります。製品と価格のリストを返す非常に単純なルートがあります。HTML 形式を要求すると常に正しい応答が得られますが、他の形式 (JSON、XML) を要求するとエラーが発生します。
ここで完全なエラーメッセージを見ることができます
現在の設定は非常に単純です。製品のリストと価格を返すコントローラーへのルートを 1 つ作成しました (この例に従って製品ドキュメントを作成しました)。
これはルートです:
これはコントローラーです:
これは、コントローラー Resources/Product/get.html.twig から呼び出されるビューです。
これが 1 つの形式では正しく機能し、他の形式では機能しない理由はありますか? セットアップすることになっている追加の何かはありますか?
更新: これは私が使用している構成値です。app/config/config.yml の最後に私はこれを持っていました:
回避策:
もう少し調査を行うと、別のエラーに遭遇し、この質問と回答につながりました。
https://stackoverflow.com/a/14030646/155248
Doctrine\ODM\MongoDB\LoggableCursor
次のようにすべての結果を配列に追加して、を取り除いたら:
結果を正しい形式で取得し始めました。これは一種の不十分な解決策であり、この問題に対するより良い答えを見つけることを望んでいます.
php - FOSRestBundle ビューの注釈が機能しない
config.yml:
annotated controller:
.json
format でルートにアクセスすると、次のように返されます。
ただし、ステータス コードをアノテーションのステータス コードに変更することはありません。
また、フォーマットが指定されていない場合、デフォルトの.json
フォーマットにフォールバックせず、引き続きテンプレートを検索します。
php - JMSSerializer と FOSRestBundle - 注釈が機能しない。"存在しません"
ExclusionPolicy を使用しようとしていますが、「注釈が存在しないか、自動読み込みできませんでした」というエラーが表示され続けます。
スローされる正確なエラーは次のとおりです。
[Semantical Error] クラス Acme\DemoBundle\Entity\Attributes の注釈「@JMS\SerializerBundle\Annotation\ExclusionPolicy」が存在しないか、自動ロードできませんでした。
私のコードは次のとおりです。
rest - REST API 呼び出しとともにユーザー ID を送信しますか?
バックエンドにsymfony2 + FosRestBundle、フロントエンドにangularjsを使用してアプリケーションを構築しています。これは、単一ページのアプリケーションです。バックエンドとクライアント (残りの API/バックエンドからデータを消費) は同じサーバー上にあります。
ログイン後、ユーザーはデータを作成/編集/削除できます (簡単にするため)。バックエンドはステートレスであるため、symfony2 を使用してサーバー上であらゆる種類の認証コンテキストを作成できません。そのため、API 呼び出しでユーザー ID を取得できません。
そのため、ログイン時にトークンを作成し、それをクライアント アプリケーションのルート スコープに保存します。今問題について。ログインしたユーザーは、投稿を編集したり、投稿を公開から非公開に変更したりするなど、データを操作しているため、API 呼び出しと共にユーザー ID を渡す必要があります。ただし、一部のリクエストタイプはパラメーターに制限されているようです。
REST アクションの詳細については、https://github.com/FriendsOfSymfony/FOSRestBundle/blob/master/Resources/doc/5-automatic-route-generation_single-restful-controller.mdをご覧ください。
PUT/PATCH/UPDATE/DELETE リクエストと一緒にユーザー ID やその他の種類のパラメーターを送信することは可能ですか? 他に提案やアイデアはありますか?この問題に対するアプローチが間違っていますか? ユーザーを残りの API 呼び出しにどのように渡しますか?
jquery - symfony2 / FOSRestBundle: HTTP ステータスコードがありません
symfony2 と FOSRestBundle が提供する REST Web サービスにアクセスしたいと考えています。HTTP ベース認証を使用します。残念ながら、認証が (正しく) 提供されていない場合、HTTP コード 401 と 403 を取得する方法がわかりません。
これは、jquery/AJAX を使用してサービスを呼び出す方法です。
間違った認証データを提供した場合、または認証データを提供しなかった場合、「完了」機能も「失敗」機能も実行されません。
このようなもの(上記のAJAX呼び出しを配置した場所と同じファイル内)でも、エラーメッセージやステータスコードを取得できません:
これは symfonys config.yml の私の FOSRestBundle 設定です:
security.yml:
ご覧のとおり、いくつか試してみました (最後の 2 行など)。しかし、現在、私は立ち往生しており、どこからデバッグを開始すればよいかわかりません。
認証が必要なとき、または失敗したときに HTTP ステータス コードを受け取るにはどうすればよいですか?
どんな助けでも大歓迎です:-)