web-dev-qa-db-ja.com

POST新しいノードはどうすればよいですか?

私は以下を含む多くのリンクを参照しました:

POST新しいノードをDrupalサイトに追加する方法をいくつか試しましたが、失敗しました。名前付きの学生データを保存するためのサンプルCCKを作成しました。年齢、性別、DOB、およびいくつかのリストを追加しました。

サービスモジュール(D7)をインストールして構成し、サービスでサービスエンドポイントを作成しました。
予想どおり、GETはJSONでノードの詳細を取得する最も簡単な方法です。 http://localhost/drupal/services/nodeは単にすべてのノードをリストしました。

[〜#〜] post [〜#〜]メソッドの使用方法がまだわかりません。

  1. 名前にjohnが含まれる学生を検索したい。私は試した localhost/drupal/services/node&node[name]=john。 Chrome=)にPOST Manプラグインを使用しましたが、成功しませんでした。他の方法も試しました。

  2. 新しい学生をサイトに追加しようとしましたが、成功しませんでした。

上記の作業をうまく行うために誰かが私を導くことができますか?

更新:

タイプarticleの新しいノードを追加してみました。それはうまくいきました。タイプDepartment CCKのノードを追加しようとすると、「s:22:」CSRF検証が表示されます失敗しました ";"これがスクリーンショットです

私はリンクを通過しました https://drupal.org/node/2013781

セッション= session_name = session_idをたどりましたが、それでもエラーが発生します。
enter image description hereenter image description hereenter image description here

16
Ramaraju.d

これがあなたを助けることを願って、

Drupal 7の場合

使用したツール:

  • Firefoxポスター テストとデバッグを行うためのアドオン。他のアドオンもあるかもしれません。しかし、この例ではFirefoxアドオンを使用しています。
  • JSONデータの編集と検証を支援するために使用できます
    • これを使用してJSONデータを編集します link
    • これを使用してJSONデータを検証します link

HTTPリクエスト

  • HTTPリクエストを行うには、Firefoxアドオン [〜#〜] poster [〜#〜] を使用する必要があります。

  • クライアントとサーバー間の要求/応答に一般的に使用される2つの方法は次のとおりです。

    • GET
    • POST
  • アドオンがダウンロードされた後。開くFirefox->ツール->ポスター

    enter image description here

  • Session authenticationを必ず有効にしてください。 Servicesが適切に構成された後、ノードを作成する前にlog-in。ログインすると、ノードを作成できます。

  • ログインの場合POSTメソッド、URLは- http://XXXXXXXX.com/demo/rulebook/rulebook_endpoint/user/login

    enter image description here

  • 有効なユーザーの場合は、user detailswithセッションIDと名前。無効な場合はが返されますアクセスが拒否されました

    enter image description here

  • POST HEADERでセッション名とIDを使用すると、新しいノードを作成できます

    enter image description here

  • HEADERを追加したら、HTTP POSTリクエストを作成し、ユーザーにノードを作成する権限があることを確認する必要があります。

    enter image description here

  • ノードが作成されると、ノードリンクを含む応答が得られます

    enter image description here

注:JSONで応答が必要な場合は、常にURLの末尾に.jsonを追加する必要があります。例: http://XXXXXXXX.com/test/endpoint/user.json OR http://XXXXXXXX.com/test/endpoint /node.json OR http://XXXXXXXX.com/test/endpoint/user/user_id.json OR = http://XXXXXXXX.com/test/endpoint/node/node_id.json

22
inizio

Drupal 7およびサービス7.x-3.xの場合

ステップ1:ユーザー名とパスワードを使用してuser.loginリソースへの投稿リクエストを発行します。

ログインが成功すると、4つのプロパティを持つ応答オブジェクトが取得されます。

  • session_name
  • セシッド
  • トークン
  • ユーザー(オブジェクト)

Google chrome postmanからのスクリーンショット Screenshot from google chrome postman

ステップ2:ヘッダーを2つ付けてnodeに投稿リクエストを発行します

  • Cookie:[session_name] = [sessid]
  • X-CSRF-Token:[トークン]

Google chrome postmanからのスクリーンショット Screenshot from google chrome postman

7
Muhammad Reda

[〜#〜] post [〜#〜] to REST APIを実行すると、すべてをPOSTデータに入れる必要があります。 [〜#〜] url [〜#〜]にしないでください。 Postmanでは、リクエストを投稿するように設定できます。次に、x-www-form-urlencoded以下に入力して、データ値を追加できます。 status、uid、language、type、titleを追加し、次に追加の値を追加することを忘れないでください。リソースURLはHost/REST_API_PATH/nodeのみにする必要があります。

0
itarato