กรองคำตอบในรายการ

บริการส่วนใหญ่ในเครือข่ายดิสเพลย์และ Video 360 API มีเมธอด LIST สำหรับการเรียกข้อมูล ที่ไม่ซับซ้อน โดยปกติแล้วเมธอด LIST เหล่านี้รองรับการกรองผลการค้นหาผ่าน พารามิเตอร์การค้นหาของ filter ใช้พารามิเตอร์นี้เพื่อเพิ่มประสิทธิภาพการใช้ API ของคุณ เพื่อเรียกข้อมูลที่คุณต้องการ

คู่มือนี้แสดงวิธีใช้พารามิเตอร์ filter อย่างมีประสิทธิภาพ

โครงสร้างตัวกรอง

ค่าพารามิเตอร์ filter เป็นสตริง ซึ่งประกอบด้วยข้อจำกัดอย่างน้อย 1 ข้อ ซึ่งสามารถใช้ร่วมกับโอเปอเรเตอร์ AND หรือ OR และจัดกลุ่มโดยใช้ วงเล็บ

ข้อจำกัดจะอยู่ในรูปแบบ {field} {operator} {value} นี่คือ ตัวอย่าง:

entityStatus="ENTITY_STATUS_ACTIVE"

สตริงตัวกรองมีความยาวไม่เกิน 500 อักขระ หากสตริงตัวกรอง เกิน 500 อักขระ โปรดดำเนินการอย่างใดอย่างหนึ่งต่อไปนี้

  • แยกตรรกะเป็นสตริงตัวกรองหลายรายการ และเรียกใช้ทรัพยากรโดยใช้ แยกคำขอ LIST รายการ
  • นำตรรกะออกจากสตริงตัวกรองและใช้เพื่อกรอง ทรัพยากรในเครื่อง

ตัดค่าข้อจำกัดในเครื่องหมายคำพูดเพื่อให้ใช้ตรรกะได้ถูกต้อง

เข้ารหัส URL สตริงตัวกรองหากคุณเรียกใช้ LIST โดยตรงโดยไม่มี โดยใช้ไลบรารีของไคลเอ็นต์

ดูรายละเอียดเพิ่มเติมเกี่ยวกับการจัดรูปแบบได้ในตรรกะระหว่างข้อจำกัด คำค้นหาของคุณ

ช่องที่กรองได้

ช่องที่กรองได้ของเมธอด LIST แต่ละช่องจะแสดงอยู่ใน filter ของเมธอด คำอธิบายพารามิเตอร์ ในกรณีส่วนใหญ่ คุณจะกรองรายการย่อยของทรัพยากรได้ ฟิลด์มาตรฐาน ในบางกรณีซึ่งพบได้ไม่บ่อยนัก ยังมีช่องเพิ่มเติมที่คุณสามารถใช้ได้ สำหรับการกรองเท่านั้น

แต่ละช่องในคำอธิบายของพารามิเตอร์รองรับข้อมูลต่อไปนี้อย่างน้อย 1 ช่อง โอเปอเรเตอร์ที่เปรียบเทียบกันได้:

โอเปอเรเตอร์ที่เปรียบเทียบได้
EQUALS (=) ค่าในช่องทรัพยากรเท่ากับค่าที่ระบุ

เช่น entityStatus="ENTITY_STATUS_ACTIVE"

LESS THAN OR EQUAL TO (<=) ค่าในช่องทรัพยากรน้อยกว่าหรือเท่ากับค่าที่ระบุ ที่ใช้บ่อย เมื่อเปรียบเทียบวันที่หรือวันที่และเวลา

เช่น updateTime<="2023-04-01T12:00:00Z"

GREATER THAN OR EQUAL TO (>=) ค่าในช่องทรัพยากรมากกว่าหรือเท่ากับค่าที่ระบุ ที่ใช้บ่อย เมื่อเปรียบเทียบวันที่หรือวันที่และเวลา

เช่น updateTime>="2023-03-01T12:00:00Z"

HAS (:) ค่าในช่องทรัพยากรมีค่าที่ระบุ หากช่องแหล่งข้อมูลเป็น ระบบจะตรวจสอบว่าค่าที่ระบุเป็นสตริงย่อยที่มีอยู่หรือไม่ หาก ฟิลด์ทรัพยากรคืออาร์เรย์ ซึ่งจะตรวจสอบว่าอาร์เรย์มีค่า

เช่น lineItemIds:"1234"

หากไม่ได้ระบุโอเปอเรเตอร์สำหรับช่องในคำอธิบายของพารามิเตอร์ คุณจะ ใช้โอเปอเรเตอร์ EQUALS (=) ได้เท่านั้น บางช่องรองรับโอเปอเรเตอร์หลายรายการ

ช่องที่กรองได้บางช่อง เช่น ช่องวันที่และเวลา ต้องใช้แอตทริบิวต์ ค่าที่เปรียบเทียบได้เพื่อให้เป็นไปตามรูปแบบหนึ่งๆ รูปแบบที่ระบุไว้ถัดจาก ช่องดังกล่าวในคำอธิบายพารามิเตอร์ filter

ตรรกะระหว่างข้อจำกัด

คุณสามารถรวมข้อจำกัดหลายๆ อย่างเข้าด้วยกันเพื่อจำกัดหรือขยายการตอบกลับจาก คำขอLIST

โดยปกติคุณจะรวมข้อจำกัดหลายข้อเข้ากับ AND และ OR ได้ โอเปอเรเตอร์ทางตรรกะ เมธอด LIST แต่ละเมธอดจะระบุโอเปอเรเตอร์ที่รองรับ บางวิธีรองรับการใช้ข้อจำกัดรายการเดียวในพารามิเตอร์ filter เท่านั้น

พิจารณาข้อจำกัดต่อไปนี้เมื่อสร้างสตริงตัวกรองด้วย AND หรือโอเปอเรเตอร์เชิงตรรกะ OR

  • ต้องใช้ AND ระหว่างข้อจำกัดหรือกลุ่มข้อจำกัดที่ กรองช่องที่ต่างกัน หรือกรองช่องเดียวกันต่างกัน นี่คือ ตัวอย่างเช่น
    • updateTime>="2023-03-01T12:00:00Z" AND entityStatus="ENTITY_STATUS_ACTIVE"
    • updateTime>="2023-03-01T12:00:00Z" AND updateTime<="2023-04-01T12:00:00Z" AND (entityStatus="ENTITY_STATUS_ACTIVE" OR entityStatus="ENTITY_STATUS_PAUSED")
  • OR ต้องใช้ระหว่างข้อจำกัดแต่ละรายการที่กรอง ด้วย มีตัวอย่างดังต่อไปนี้
    • (entityStatus="ENTITY_STATUS_ACTIVE" OR entityStatus="ENTITY_STATUS_PAUSED") AND (lineItemType="LINE_ITEM_TYPE_DISPLAY_DEFAULT" OR lineItemType="LINE_ITEM_TYPE_VIDEO_DEFAULT")
  • คุณใช้ORเพื่อรวมข้อจำกัด 2 กลุ่มไม่ได้ ใช้หลายรายการ คำขอ LIST รายการที่มีค่าตัวกรองอื่นแทน ตัวอย่างเช่น ใช้ คำขอ LIST แยกต่างหากต่อไปนี้:

    • (lineItemType="LINE_ITEM_TYPE_DISPLAY_DEFAULT" AND insertionOrderId="123")
    • (lineItemType="LINE_ITEM_TYPE_VIDEO_DEFAULT" AND insertionOrderId="456")

    อย่าใช้โอเปอเรเตอร์ OR เพื่อรวมเข้าด้วยกัน

    (lineItemType="LINE_ITEM_TYPE_DISPLAY_DEFAULT" AND insertionOrderId="123") OR (lineItemType="LINE_ITEM_TYPE_VIDEO_DEFAULT" AND insertionOrderId="456")

  • เครื่องหมายวงเล็บอาจบอกเป็นนัยหากคุณไม่ใช้วงเล็บเพื่อรวมกลุ่มที่จำกัดใน สตริงตัวกรอง ตัวอย่างเช่น สตริงตัวกรองต่อไปนี้

    updateTime>="2023-03-01T12:00:00Z" AND entityStatus="ENTITY_STATUS_ACTIVE" OR entityStatus="ENTITY_STATUS_PAUSED" OR entityStatus="ENTITY_STATUS_DRAFT"

    จะได้รับการแปลค่าดังนี้

    updateTime>="2023-03-01T12:00:00Z" AND (entityStatus="ENTITY_STATUS_ACTIVE" OR entityStatus="ENTITY_STATUS_PAUSED" OR entityStatus="ENTITY_STATUS_DRAFT")