Vì Phần Mở Rộng API của ChatX yêu cầu một địa chỉ internet công khai làm Điểm Cuối API, chúng ta cần triển khai phần mở rộng API của mình đến một địa chỉ internet công khai. Ở đây, chúng tôi sử dụng Cloudflare Workers để triển khai phần mở rộng API của chúng tôi.
Chúng ta sao chép , chứa một phần mở rộng API đơn giản. Chúng ta có thể sửa đổi điều này như là một cơ sở.
Mở tệp wrangler.toml
và sửa tên
và compatibility_date
thành tên ứng dụng của bạn và ngày tương thích của bạn.
Một cấu hình quan trọng ở đây là TOKEN
trong vars
, mà bạn sẽ cần cung cấp khi thêm phần mở rộng API vào ChatX. Vì lý do bảo mật, nên sử dụng một chuỗi ngẫu nhiên làm Token. Bạn không nên viết Token trực tiếp trong mã nguồn mà phải chuyển qua biến môi trường. Do đó, đừng commit wrangler.toml của bạn vào kho lưu trữ mã nguồn của bạn.
Phần mở rộng API này trả về một câu trích dẫn ngẫu nhiên từ Breaking Bad. Bạn có thể sửa đổi logic của phần mở rộng API này trong src/index.ts
. Ví dụ này cho thấy cách tương tác với một API bên thứ ba.
Repository này đơn giản hóa tất cả các cấu hình ngoại trừ logic kinh doanh. Bạn có thể trực tiếp sử dụng các lệnh npm
để triển khai phần mở rộng API của bạn.
Sau khi triển khai thành công, bạn sẽ nhận được một địa chỉ internet công khai, mà bạn có thể thêm vào ChatX làm Điểm Cuối
API. Vui lòng lưu ý không bỏ lỡ đường dẫn điểm cuối.
Logic xác thực Bearer của chúng tôi được hiển thị như trên. Chúng tôi sử dụng gói hono/bearer-auth
cho xác thực Bearer. Bạn có thể sử dụng c.env.TOKEN
trong src/index.ts
để lấy Token.
Chúng tôi sử dụng zod
để định nghĩa các loại tham số. Bạn có thể sử dụng zValidator
trong src/index.ts
để kiểm tra tham số. Lấy các tham số được xác thực qua const { point, params } = c.req.valid("json");
. Điểm của chúng tôi chỉ có hai giá trị, vì vậy chúng tôi sử dụng z.union
cho định nghĩa. params
là một tham số tùy chọn, được định nghĩa với z.optional
. Nó bao gồm một tham số inputs
, một loại Record<string, any>
đại diện cho một đối tượng với khóa chuỗi và giá trị bất kỳ. Loại này có thể đại diện cho bất kỳ đối tượng nào. Bạn có thể lấy tham số count
trong src/index.ts
bằng cách sử dụng params?.inputs?.count.