Nhận các điều khoản cho chỉ một nguyên tắc phân loại từ mô-đun dịch vụ


7

Tôi có dịch vụ môđun được cài đặt, và tôi có cả hai taxonomy_termtaxonomy_vocabularykiểm tra. Tuy nhiên tôi đang gặp vấn đề khi chỉ nhận các thuật ngữ cho một từ vựng. khi tôi làm curl -g "http://domain.com/endpoint/taxonomy_term?args[0]=machine_name_of_vocabulary"hoặccurl -g "http://domain.com/endpoint/taxonomy_term?args[0]=2"

Tôi nhận được một kết quả xml như thế này:

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

đó là các điều khoản của tất cả các từ vựng. Nói cách khác, tôi có lập luận sai, hoặc yêu cầu sai, hoặc có gì đó sai.

Làm cách nào để định cấu hình dịch vụ và yêu cầu nó chỉ nhận một từ vựng?

Câu trả lời:


9

Tôi đã làm việc trên chính xác điều tương tự vào ngày khác, định dạng như thế này:

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

Để giải thích thêm một chút ...

Nếu bạn nhìn vào các mã trong _taxonomy_resource_definition()các chỉ số tài nguyên xác định một vài đối số:

  • trang (int)
  • các trường (chuỗi)
  • tham số (mảng)
  • kích thước trang (int)

Cách để vượt qua bất kỳ trong số đó là:

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

parameterslà một mảng bạn cần định dạng nó như thể nó là một mảng kết hợp trong URL, vì vậy bạn sử dụng (ví dụ) parameters[vid]=2.

Nó cũng sẽ làm việc cho các tham số khác, ví dụ parameters[name]=TermName.


0

Đối với Dịch vụ 3.x trên Drupal7, điều này cũng hoạt động:

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

Tại sao?

Không chắc. Không chắc chắn tại sao họ nhân đôi khả năng. Cũng không chắc chắn tại sao đây là một POST. Một số người trong hội đồng drupal nói rằng đó là vì lấy ra những thứ này là "một hành động" và "hành động" cần phải được thực hiện với POST. Nó không có ý nghĩa với tôi. Nó trông giống như một truy vấn, không phải là một hành động. Nhưng sao cũng được.

Nhưng tôi thích câu trả lời khác tốt hơn.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.