Abrufen von Begriffen für nur eine Taxonomie aus dem Servicemodul

7

Ich habe das Servicemodul installiert, und ich habe beide taxonomy_termund taxonomy_vocabularyüberprüft. Ich habe jedoch Probleme, nur die Begriffe für einen Wortschatz zu finden. wenn ich curl -g "http://domain.com/endpoint/taxonomy_term?args[0]=machine_name_of_vocabulary"odercurl -g "http://domain.com/endpoint/taxonomy_term?args[0]=2"

Ich erhalte ein XML-Ergebnis wie folgt:

<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>

Das sind die Begriffe aller Vokabeln. Mit anderen Worten, ich habe das Argument falsch oder die Anfrage falsch oder etwas anderes falsch.

Wie konfiguriere ich Dienste und fordere sie an, nur ein Vokabular zu erhalten?

user1359
quelle

Antworten:

9

Ich habe neulich genau das Gleiche gemacht, das Format ist wie folgt:

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

Um das etwas weiter zu erklären ...

Wenn Sie sich den Code in _taxonomy_resource_definition()der Indexressource ansehen, werden einige Argumente definiert:

  • Seite (int)
  • Felder (Zeichenfolge)
  • Parameter (Array)
  • Seitengröße (int)

Der Weg, um eine dieser zu passieren, ist:

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

Da parameterses sich um ein Array handelt, müssen Sie es so formatieren, als wäre es ein assoziatives Array in der URL, also verwenden Sie (z parameters[vid]=2. B.) .

Es funktioniert auch für andere Parameter, z parameters[name]=TermName.

Clive
quelle
0

Für Services 3.x auf Drupal7 funktioniert dies auch:

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" }'

Warum?

Nicht sicher. Ich bin mir nicht sicher, warum sie die Funktion dupliziert haben. Auch nicht sicher, warum dies ein POST ist. Jemand auf einem Drupal-Board sagte, es liege daran, dass das Abrufen dieser Dinge "eine Aktion" sei und "Aktionen" mit POST durchgeführt werden müssten. Es ergab für mich keinen Sinn. Es sieht aus wie eine Abfrage, keine Aktion. Aber was auch immer.

Aber die andere Antwort gefällt mir besser.

Cheeso
quelle