Chuyển JSON sang GraphQL schema (SDL)

Tạo object type GraphQL SDL từ JSON: phân biệt Int và Float, đánh dấu non-null, kiểu danh sách và kiểu lồng nhau suy ra từ mẫu của bạn. Miễn phí.

Trường không null có "!". Số nguyên vượt 32 bit thành Float; giá trị hỗn hợp hoặc chỉ null dùng scalar tùy chỉnh JSON.

Chạy hoàn toàn trong trình duyệt. Dữ liệu của bạn không bao giờ bị tải lên.

Công cụ Liên quan

Xem Tất cả

JSON sang GraphQL là gì?

Tạo các khai báo type bằng ngôn ngữ định nghĩa schema GraphQL (SDL) từ một mẫu JSON. Giá trị bắt buộc có dấu non-null !, mảng trở thành kiểu danh sách và đối tượng lồng nhau trở thành object type riêng.

Cách sử dụng JSON sang GraphQL

  1. Dán mẫu JSON vào ô JSON đầu vào (hoặc nhấn Tải ví dụ / Mở tệp).
  2. Đặt Tên kiểu gốc (mặc định là Root).
  3. Sao chép mã GraphQL được tạo ra hoặc nhấn Tải xuống để lưu thành tệp.

Ví dụ

Đầu vào
{"id":1,"name":"A","tags":["x"]}
Đầu ra
type Root {
  id: Int!
  name: String!
  tags: [String!]!
}

Khi nào nên dùng JSON sang GraphQL

Dùng để phác thảo schema cho một GraphQL API bọc ngoài dịch vụ JSON/REST có sẵn. Công cụ chỉ sinh output type; input type, query, mutation và resolver vẫn phải tự viết.

JSON sang GraphQL hoạt động như thế nào

Mẫu JSON được duyệt đệ quy và mỗi vị trí ghi nhận các kiểu dữ liệu đã gặp. Mảng đối tượng được gộp thành một kiểu: khóa thiếu ở một số phần tử trở thành tùy chọn, khóa có giá trị null ở đâu đó trở thành nullable, số nguyên trộn với số thập phân trở thành kiểu số thực, và mọi trường hợp trộn kiểu khác sẽ dùng kiểu động. Đối tượng lồng nhau trở thành kiểu có tên riêng (tên khóa viết PascalCase, khóa mảng được chuyển về số ít: orders → Order), kèm hậu tố số khi trùng tên. Đầu ra GraphQL ánh xạ số nguyên thành Int (hoặc Float khi giá trị vượt 32 bit, vì Int của GraphQL là 32 bit), số thập phân thành Float, chuỗi thành String và boolean thành Boolean. Giá trị null hoặc bị thiếu trong mẫu là nullable (không có !). Giá trị trộn kiểu hoặc chỉ có null dùng scalar tùy chỉnh JSON, được khai báo ở đầu khi cần. Tên trường không phải tên GraphQL hợp lệ được chuyển sang camelCase.

Các Trường Hợp Sử Dụng Phổ Biến

  • Phác thảo object type cho GraphQL gateway đặt trước REST API
  • Mô tả cấu trúc dữ liệu JSON bằng SDL
  • Bắt đầu thiết kế API theo hướng schema-first từ dữ liệu mẫu
  • So sánh payload REST với một GraphQL schema hiện có

Câu Hỏi Thường Gặp

Vì sao ID có kiểu Int mà không phải ID?

Mẫu chỉ cho thấy một con số. Hãy đổi thành ID! nếu trường là mã định danh – công cụ không thể biết ngữ nghĩa.

Scalar JSON là gì?

Một scalar tùy chỉnh dùng cho giá trị có kiểu thay đổi. Máy chủ của bạn phải định nghĩa nó, ví dụ bằng graphql-scalars.

Vì sao số nguyên lớn lại là Float?

Int của GraphQL giới hạn ở số có dấu 32 bit; số lớn hơn sẽ bị từ chối, nên được ánh xạ sang Float (hoặc dùng scalar BigInt tùy chỉnh).

Khám phá thêm danh mục