Sử dụng API
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ácname_not
: String - Không bằngname_contains
: String - Chứa chuỗi conname_not_contains
: String - Không chứa chuỗi conname_starts_with
: String - Bắt đầu bằngname_not_starts_with
: String - Không bắt đầu bằngname_ends_with
: String - Kết thúc bằngname_not_ends_with
: String - Không kết thúc bằngname_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ảngname_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 IDid_not
: ID - ID không bằngid_in
: [ID!] - ID có trong mảngid_not_in
: [ID!] - ID không có trong mảng
Output Types
Todo
id: ID!
- ID duy nhất của todoname: 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).