2016-03-07 15 views
7

Tôi là một phần của dự án được viết bằng TypeScipt và tôi đang cố gắng thêm Máy chủ Web TypeScript sẽ tương thích với Swagger.
Chiến lược cơ bản nhất để triển khai nó là gì, xem xét khả năng bảo trì dễ dàng.cách thích hợp để tạo một dịch vụ web dao găm trong TypeScript

  • Đối với loại bản ghi, tôi có thông báo tồn tại thư viện 'Typson' để tạo mô hình JSON từ giao diện TypeScript.

  • Đối với Swagger, tôi đã thử sử dụng thư viện 'swagger-node-restify', vì nó hỗ trợ thêm các mô hình JSON để mở rộng.

Tuy nhiên, tôi gặp phải một số vấn đề:

  1. Typson không hỗ trợ nguyên cảo cú pháp của nhập - (import {Server} from "restify")
  2. Tôi cố gắng để thực hiện 'vênh vang-node-restify 'Ví dụ (Ví dụ thú cưng), tuy nhiên RESPONSE của máy chủ cục bộ: 8080/api-docs.json GET Request thiếu tất cả dữ liệu SPEC của API. {"apiVersion":"0.1","swaggerVersion":"1.1","basePath":"http://localhost:8080","apis":[{"path":"/api-docs.{format}/pet","description":"none"}]}

Trả lời

3

Tôi đề nghị để mô tả một Swagger compliant API sử dụng yaml hoặc jsontạo ra các máy chủ từ đó.

swagger-server có thể tạo API ở trên cùng của express trong thời gian thực (không có tạo mã nguồn).

JavaScript đang phát:

  • Gọi client vênh vang-codegen với -l nodejs-server

  • swagger-node là một thay thế tuyệt vời nhưng dường như khó có thể tích hợp với TypeScript

+0

Đây là cách tiếp cận tốt nhất. Nhiều dự án nỗ lực xây dựng các dịch vụ từ mã -> vênh vang, nhưng tôi tin rằng đây không phải là cách tiếp cận tốt nhất. Bằng cách viết một đặc tả dao găm trong JSON (tiêu chuẩn hơn YAML vì sự tích hợp của lược đồ Json), bạn không buộc tài liệu của API của bạn vào một môi trường thời gian chạy hoặc triển khai cụ thể. Thay vào đó bạn đang viết cho một spec, và sau đó xây dựng khách hàng hoặc máy chủ từ spec đó bằng cách sử dụng swagger-codegen. – coding

Các vấn đề liên quan