Bagaimana cara mendokumentasikan API nodejs yang ada?

Baru mengenal Node, dan sangat frustrasi dengan banyak perpustakaan yang melakukan hal yang sama. Aku tidak akan kemana-mana.

Saya sudah memiliki aplikasi Node + express, dan perlu mengintegrasikan dokumen angkuh. Thread paling berguna yang saya temukan adalah yang ini. Tapi itu hanya mengharapkan file api-docs.json paralel. Ini tidak dihasilkan secara otomatis.

Saya ingin mendokumentasikan setiap API di pengontrol, dan ingin membuat dokumennya. Bisakah seseorang mengarahkan saya ke sumber daya yang lebih baik?


person sidgate    schedule 14.11.2016    source sumber
comment
Meminta rekomendasi di luar topik di SO. Pertimbangkan untuk memaksakan suatu pendekatan dan tanyakan setelah Anda menemukan masalah tertentu.   -  person E_net4 the curator    schedule 14.11.2016
comment
Anda dapat menggunakan apidocjs.com ini untuk dokumentasi, saya tidak menggunakan tambahkan ini sebagai jawaban karena ini sangat pertanyaan berpendirian   -  person AJS    schedule 14.11.2016


Jawaban (1)


Akhirnya saya bisa membuatnya berfungsi dengan swagger-jsdoc

Langkah

  • Tambahkan paket Swagger-UI
  • Tambahkan ketergantungan swagger-ui

    npm install -g swagger-ui

  • Konfigurasikan kesombongan di file server.js Anda

    var swaggerJSDoc = require('swagger-jsdoc'); var options = { swaggerDefinition: { info: { title: 'Hello World', // Title (required) version: '1.0.0', // Version (required) }, }, apis: ['./routes.js'], // Path to the API docs }; var swaggerSpec = swaggerJSDoc(options); app.get('/api-docs.json', function(req, res) { res.setHeader('Content-Type', 'application/json'); res.send(swaggerSpec); }); app.use('/api/docs',express.static('./node_modules/swagger-ui/dist'));

  • Tambahkan komentar angkuh ke fungsi pengontrol Anda

/** * @swagger * resourcePath: /api * description: All about API */

/** * @swagger * /login: * post: * description: Login to the application * produces: * - application/json * parameters: * - name: username * description: Username to use for login. * in: formData * required: true * type: string * - name: password * description: User's password. * in: formData * required: true * type: string * responses: * 200: * description: login */ app.post('/login', function(req, res) { res.json(req.body); });

person sidgate    schedule 15.11.2016