サービスモジュールから1つの分類のみの用語を取得する


7

サービスモジュールをインストールし、両方taxonomy_termtaxonomy_vocabularyチェックしました。ただし、1つの語彙の用語だけを取得するのに問題があります。私がするときcurl -g "http://domain.com/endpoint/taxonomy_term?args[0]=machine_name_of_vocabulary"またはcurl -g "http://domain.com/endpoint/taxonomy_term?args[0]=2"

次のようなxml結果が得られます。

<result>
  <item>
    <tid>2</tid>
    <vid>2</vid>
    <name>Blue</name>
    <description/>
    <format>filtered_html</format>
    <weight>0</weight>
  </item>
  <item>
    <tid>1</tid>
    <vid>5</vid>
    <name>Apple</name>
    <description/>
    <format>filtered_html</format>
    <weight>0</weight>
  </item>
</result>

これはすべての語彙の用語です。言い換えれば、私は議論が間違っているか、要求が間違っているか、何か他のことが間違っています。

サービスを構成し、1つの語彙のみを取得するようにサービスに要求するにはどうすればよいですか?

回答:


9

私は先日まったく同じことをしていました、フォーマットは次のとおりです:

http://domain.com/endpoint/taxonomy_term?parameters[vid]=2

それをもう少し説明すると...

あなたは、コードを見れば、インデックスリソース数の引数を定義しています。_taxonomy_resource_definition()

  • ページ(int)
  • フィールド(文字列)
  • パラメータ(配列)
  • ページサイズ(int)

これらのいずれかを渡す方法は次のとおりです。

http://domain.com/endpoint/taxonomy_term?arg_name=value

以来parameters、あなたはそれがURLで連想配列であるかのようにそれをフォーマットする必要が配列であるので、あなたは、(例えば)を使用しますparameters[vid]=2

また、他のパラメータでも機能しますparameters[name]=TermName


0

Drupal7上のServices 3.xの場合、これも機能します。

curl -i -X POST \
 -H Cookie:SESSabcdefg12345baadbeef=ovQpBase62SessionIdHere_45AUSJ \
 -H X-CSRF-Token:v6j7r9RactujAHY-mYYZa \
 -H Accept:application/json \
 -H content-type:application/json \
 'http://services.example.com/rest/taxonomy_vocabulary/getTree' \
 -d '{ "vid" :"1" }'

どうして?

わからない。彼らが機能を複製した理由がわからない。また、これがPOSTである理由もわかりません。drupalボードの誰かが、これらのものを取得することは「アクション」であり、「アクション」はPOSTで実行する必要があるためだと言いました。それは私には意味がありませんでした。アクションではなく、クエリのように見えます。しかし、何でも。

しかし、私は他の答えの方が好きです。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.