Nhảy tới nội dung

Sử dụng API

kitty

Hướng dẫn này giả định bạn đã có một instance OcopJs đang chạy với GraphQL App được cấu hình, và một danh sách với một số dữ liệu để truy vấn. Bắt đầu trong 5 phút

Mutations

Đối với mỗi danh sách, OcopJs tạo ra sáu mutation cấp cao nhất:

  • createTodo
  • createTodos
  • updateTodo
  • updateTodos
  • deleteTodo
  • deleteTodos

CreateOneTodo

Mô tả: Tạo một todo mới với dữ liệu được cung cấp.

Input: TodoCreateInput - Dữ liệu để tạo todo mới
Output: Trả về todo đã được tạo với các trường được chỉ định

mutation CreateOneTodo($data: TodoCreateInput) {
createTodo(data: $data) {
id
name
_label_
__typename
}
}

UpdateOneTodo

Mô tả: Cập nhật một todo hiện tại bằng ID và dữ liệu mới.

Input:

  • $id: ID! - ID của todo cần cập nhật
  • $data: TodoUpdateInput! - Dữ liệu cập nhật

Output: Trả về todo đã được cập nhật

mutation UpdateOneTodo($id: ID!, $data: TodoUpdateInput!) {
updateTodo(id: $id, data: $data) {
id
name
_label_
__typename
}
}

DeleteOneTodo

Mô tả: Xóa một todo theo ID được chỉ định.

Input: $id: ID! - ID của todo cần xóa
Output: Trả về thông tin của todo đã bị xóa

mutation DeleteOneTodo($id: ID!) {
deleteTodo(id: $id) {
id
name
_label_
__typename
}
}

Queries

Đối với mỗi danh sách, OcopJs tạo ra bốn query cấp cao nhất:

  • allTodos - Lấy danh sách todos với filter
  • _allTodosMeta - Lấy metadata của tất cả todos (count, etc.)
  • Todo - Lấy một todo duy nhất
  • _TodosMeta - Lấy metadata của todos

CountAllTodos

Mô tả: Đếm tổng số lượng todos trong hệ thống.

Input: Không có
Output: Trả về metadata với số lượng todos

query CountAllTodos {
_allTodosMeta {
count
}
}

FindOneTodo

Mô tả: Tìm một todo duy nhất sử dụng điều kiện unique (thường là ID).

Input: $where: TodoWhereUniqueInput! - Điều kiện unique để tìm todo
Output: Trả về todo được tìm thấy hoặc null

query FindOneTodo($where: TodoWhereUniqueInput!) {
Todo(where: $where) {
id
name
_label_
__typename
}
}

FindAllTodos

Mô tả: Tìm danh sách todos sử dụng các điều kiện lọc linh hoạt. Hỗ trợ tất cả các pattern filter theo chuẩn GraphQL.

Input: $where: TodoWhereInput! - Điều kiện lọc cho todos
Output: Trả về mảng các todos thỏa mãn điều kiện

query FindAllTodos($where: TodoWhereInput!) {
allTodos(where: $where) {
id
name
_label_
}
}

Input Types

TodoCreateInput

  • name: String - Tên của todo

TodoUpdateInput

  • name: String - Tên mới của todo

TodoWhereUniqueInput

  • id: ID - ID duy nhất của todo

TodoWhereInput

Hỗ trợ các pattern filter chuẩn cho từng field type:

String where filters

Áp dụng cho field: name

  • name: String - Khớp chính xác
  • name_not: String - Không bằng
  • name_contains: String - Chứa chuỗi con
  • name_not_contains: String - Không chứa chuỗi con
  • name_starts_with: String - Bắt đầu bằng
  • name_not_starts_with: String - Không bắt đầu bằng
  • name_ends_with: String - Kết thúc bằng
  • name_not_ends_with: String - Không kết thúc bằng
  • name_i: String - Khớp chính xác (không phân biệt hoa thường)
  • name_not_i: String - Không bằng (không phân biệt hoa thường)
  • name_contains_i: String - Chứa chuỗi con (không phân biệt hoa thường)
  • name_not_contains_i: String - Không chứa chuỗi con (không phân biệt hoa thường)
  • name_starts_with_i: String - Bắt đầu bằng (không phân biệt hoa thường)
  • name_not_starts_with_i: String - Không bắt đầu bằng (không phân biệt hoa thường)
  • name_ends_with_i: String - Kết thúc bằng (không phân biệt hoa thường)
  • name_not_ends_with_i: String - Không kết thúc bằng (không phân biệt hoa thường)
  • name_in: [String] - Có trong mảng
  • name_not_in: [String] - Không có trong mảng

ID where filters

Áp dụng cho field: id

  • id: ID - Khớp chính xác ID
  • id_not: ID - ID không bằng
  • id_in: [ID!] - ID có trong mảng
  • id_not_in: [ID!] - ID không có trong mảng

Output Types

Todo

  • id: ID! - ID duy nhất của todo
  • name: String - Tên của todo
  • _label_: String - Label tự động sinh từ name
  • __typename: String - Tên type GraphQL ("Todo")

TodoMeta

  • count: Int! - Số lượng bản ghi

Ví dụ Sử dụng

Tìm todos theo name chứa "huy"

query {
allTodos(where: { name_contains: "huy" }) {
id
name
}
}

Tìm todos không bắt đầu bằng "test" (không phân biệt hoa thường)

query {
allTodos(where: { name_not_starts_with_i: "test" }) {
id
name
}
}

Tìm todos có ID trong danh sách

query {
allTodos(
where: { id_in: ["507f1f77bcf86cd799439011", "507f1f77bcf86cd799439012"] }
) {
id
name
}
}

Bộ lọc Chuỗi (String)

Bộ lọc Chuỗi Cơ bản

  • {field}: String - Khớp chính xác (phân biệt hoa thường). Trả về các bản ghi có trường bằng chính xác giá trị chuỗi được chỉ định.
  • {field}_not: String - Không bằng (phân biệt hoa thường). Trả về các bản ghi có trường không bằng giá trị chuỗi được chỉ định.

Bộ lọc Chứa Chuỗi

  • {field}_contains: String - Chứa chuỗi con (phân biệt hoa thường). Trả về các bản ghi có trường chứa chuỗi con được chỉ định.
  • {field}_not_contains: String - Không chứa chuỗi con (phân biệt hoa thường). Trả về các bản ghi có trường không chứa chuỗi con được chỉ định.

Bộ lọc Bắt đầu bằng

  • {field}_starts_with: String - Bắt đầu bằng tiền tố (phân biệt hoa thường). Trả về các bản ghi có trường bắt đầu bằng chuỗi được chỉ định.
  • {field}_not_starts_with: String - Không bắt đầu bằng tiền tố (phân biệt hoa thường). Trả về các bản ghi có trường không bắt đầu bằng chuỗi được chỉ định.

Bộ lọc Kết thúc bằng

  • {field}_ends_with: String - Kết thúc bằng hậu tố (phân biệt hoa thường). Trả về các bản ghi có trường kết thúc bằng chuỗi được chỉ định.
  • {field}_not_ends_with: String - Không kết thúc bằng hậu tố (phân biệt hoa thường). Trả về các bản ghi có trường không kết thúc bằng chuỗi được chỉ định.

Bộ lọc Cơ bản Không phân biệt Hoa thường

  • {field}_i: String - Khớp chính xác (không phân biệt hoa thường). Trả về các bản ghi có trường bằng giá trị chuỗi, bỏ qua chữ hoa thường.
  • {field}_not_i: String - Không bằng (không phân biệt hoa thường). Trả về các bản ghi có trường không bằng giá trị chuỗi, bỏ qua chữ hoa thường.

Bộ lọc Chứa Chuỗi Không phân biệt Hoa thường

  • {field}_contains_i: String - Chứa chuỗi con (không phân biệt hoa thường). Trả về các bản ghi có trường chứa chuỗi con được chỉ định, bỏ qua chữ hoa thường.
  • {field}_not_contains_i: String - Không chứa chuỗi con (không phân biệt hoa thường). Trả về các bản ghi có trường không chứa chuỗi con được chỉ định, bỏ qua chữ hoa thường.

Bộ lọc Bắt đầu bằng Không phân biệt Hoa thường

  • {field}_starts_with_i: String - Bắt đầu bằng tiền tố (không phân biệt hoa thường). Trả về các bản ghi có trường bắt đầu bằng chuỗi được chỉ định, bỏ qua chữ hoa thường.
  • {field}_not_starts_with_i: String - Không bắt đầu bằng tiền tố (không phân biệt hoa thường). Trả về các bản ghi có trường không bắt đầu bằng chuỗi được chỉ định, bỏ qua chữ hoa thường.

Bộ lọc Kết thúc bằng Không phân biệt Hoa thường

  • {field}_ends_with_i: String - Kết thúc bằng hậu tố (không phân biệt hoa thường). Trả về các bản ghi có trường kết thúc bằng chuỗi được chỉ định, bỏ qua chữ hoa thường.
  • {field}_not_ends_with_i: String - Không kết thúc bằng hậu tố (không phân biệt hoa thường). Trả về các bản ghi có trường không kết thúc bằng chuỗi được chỉ định, bỏ qua chữ hoa thường.

Bộ lọc Mảng

  • {field}_in: [String] - Có trong mảng. Trả về các bản ghi có giá trị trường khớp với bất kỳ chuỗi nào trong mảng được cung cấp.
  • {field}_not_in: [String] - Không có trong mảng. Trả về các bản ghi có giá trị trường không khớp với bất kỳ chuỗi nào trong mảng được cung cấp.

Bộ lọc ID

Bộ lọc ID Cơ bản

  • {field}: ID - Khớp chính xác ID. Trả về các bản ghi có trường bằng chính xác giá trị ID được chỉ định.
  • {field}_not: ID - ID không bằng. Trả về các bản ghi có trường không bằng giá trị ID được chỉ định.

Bộ lọc Mảng ID

  • {field}_in: [ID!] - ID có trong mảng. Trả về các bản ghi có giá trị trường khớp với bất kỳ ID nào trong mảng được cung cấp (tất cả ID đều bắt buộc).
  • {field}_not_in: [ID!] - ID không có trong mảng. Trả về các bản ghi có giá trị trường không khớp với bất kỳ ID nào trong mảng được cung cấp (tất cả ID đều bắt buộc).