NodeJS Swagger API Documentation Tutorial Using Swagger JSDoc
Vložit
- čas přidán 8. 01. 2021
- 📘New Course: Build full-stack React Typescript applications tsreact.maksimivanov.com/s/ytd
In this video we'll build an ExpressJS CRUD application and document it using Swagger. We'll
use swagger-jsdoc to write the specs and express-swagger-ui to show the Swagger interface.
🐦 Twitter: / ivanov_dev
I write about React and TypeScript there
Code: github.com/satansdeer/swagger...
Codesandbox: codesandbox.io/s/swagger-api-...
Video About Testing React Query Components: • How To Test React Quer...
My discord: / discord
Follow me on Odysee: odysee.com/$/invite/@stepbyst...
the best tutorial on the internet. did it all under 30 minutes. others tried and took them 10 videos to explain what you did in that time. well done and thanks for the help!
Hi Maksim! Thanks for sharing your knowledge, it helped me a lot with my new job. A big hug from Brazil.
Hey Maksim, thank you so much for this content. Found in a very good timing because my team will start to use swagger and its routes/documentation soon. I had the opportunity to put in practice and also meet that great channel of yours. I started following and subscribed the newsletter. Hope to learn more with your explanations (specially in TS) here. Best regards
name: maksim
This tutorial was very helpful for me, thank you. I'd like to see more of your tutorials in TS.
Nice tutorial! For those who have a working restful service(s) and want to learn only the swagger part, you may safely skip to 9:50
Thanks alot!
Amazing tutorial. Using typescript would be a welcome development.
Thanks Maksim, good stuff, and yup, I'd love to see some typescript knowledge share ~~
Found this very much useful for me as I am a beginner to Swagger :-)
Thank you for the very informative video, loved the pace of the the scripting and the explanations! subscribed!
Easy to follow coding and awesome. Keep it up !
This video helped me a lot. Thanks for the tutorial!!!
Thanks for the tutorial!! Make a typescript playlist man.
Great tutorial, thanks Maksim!
Been searching for this, I’ll try to play with it when I got a chance, thanks 😊
Oh yes, good idea! I'd like to see examples in TypeScript
Максим! Спасибо огромное за суперское видео, поделюсь с братьями по стажировке)
Thank you very much for such an awesome tutorial. Yes, Please use Typescript
For anyone struggling with lowdb, change the declaration to
import cors from 'cors';
import express from 'express';
import morgan from 'morgan';
import { Low, JSONFile } from 'lowdb';
import { dirname } from 'path';
import { fileURLToPath } from 'url';
import { join } from 'path';
const __dirname = dirname(fileURLToPath(import.meta.url));
const file = join(__dirname, 'db.json');
const adapter = new JSONFile(file);
const db = new Low(adapter);
const PORT = process.env.PORT || 4000;
db.defaults({ books: [] }).write();
Remeber to add type: module to your package.json file
Nice job. Be great to add in the authentication bit. I managed to refer to the docs for that.
Awesome tutorial! Really like your examples. Any chance you could do another swagger tutorial with with typescript and mongoose/mongo?
This video helped me a lot. Thanks.
Thank you for nice tutorial! typescript examples in future +1
Thank you, typescript will be great
I'd love to see some Typescript in future for your code example.
Excellent tutorial
Pure gold! Thank you
So clear code, nice work
Nice doing man!
Thank you. It was very good
Great video. I would like to see more TS videos.
Very Good tutorial. Many thanks
Thank you for the useful video)
Thank you so much❤❤
Very helpful
Using TypeScript as the programming language would be so nice.
Yes, TypeScript would be better. Thanks for the video!
I love typescript too!
great video thank you. maybe a mix of JS and TypeScript...for variety.
Thanks for this tutorial
Yes, TS would be great! Or, at least using ESM modules in JS - that would be great as well! Let’s forget those old require() stuff and use imports!
Thank you very much! 🇧🇷
Very helpful video....Thanks a lot
Kindly make some video for authorization with the same
great job !
Suppose I keep the schemas from mongoose in a separate file from routes, how do I instruct swagger-jsdoc to parse schema instructions from there ? just add the path to apis section in the options object ? Or is there anything wrong with doing that
a perfect video for me
I'm using your example for a jobposting ! let's see what they say ! ;)
And i thought it will be about swagger. And it was. Lol. Robotic tutorial!
I believe that adding components schemas to the definitions object inside options is a little bit neater. This way you avoid having orphan jsdoc comments in route files (i actually don't know if swagger-jsdoc is able to merge multiple components schemas into one). Also if you add it to the definitions object the syntax is js not yaml nonsense, much easier to write in vscode.
Hi, thanks for great video, definitely I am gonna be using swagger! I have just one question, why only post / route has try catch block and 500 response? Is there any reason for that or it is just by example?
cool example! I guess no one has done a video on how to customize swagger-ui-react documentation is scarce
If you want to follow this tutorial then make sure you install swagger-jsdoc like this: npm i swagger-jsdoc@6.0.1
Otherwise, it won't work with the current version 7 of swagger-jsdoc which breaks everything and is a pain in the ass to setup.
Thanks for this update
You deserve a dollar
Had similar issue with lowdb had to go back and use npm i lowdb@1.0.0
@@TheIGORYA76 great thanks 👍
+1 to Typescript
Great tutorial. But a good readable theme (particularly for swagger comments) of the code editor would help to read the code.
do you know of any?
yhea good idea... everything was gray... it wasn't super neet to see code
Thanks !
Nice tutorial thanx. What's your VS Code theme? It's look so good an understandable.
JavaScript please! Great video… Love it
i think your update documentation does not affect the database, i tried that. same query with postman fire perfectly worked!
Many thanks for this video tutorial, I personally use your tutorial a lot and help me to understand them more easily, I have a question, for backend with node I can see you use expressjs, would you recommend this for production or do you know or can point me for a better choice? do you know any page which compares different tools/libs for node backend technology?
hi, well two major backend libs for node are expressjs and nestjs. The problem with express is that it is a like a constructor kit, it is very minimalistic. You have to make lots of decisions when working with it and likely use a bunch of other libraries.
Nest is more like a combine. It has a lot of decisions made for you and you got to learn the way the creators of the lib intended it to be used.
Hope this helps
@@satansdeer1 Many thanks, I will check the NestJS
may be a bit late but I'd like the typescript content much more
Nice tutorial. Can we have one which includes the authorization header?
Thanks alot for the video. I would prefer Typescript
This may require more video editing but, I would be nice if you make video's using typescript as it's trending towards the standard. Then add javascript comment alt post edit, just for future proofing.
Me encantarían ejemplos con typescript
is it possible swagger notation define in separate file ? not in route section if more then 1000 or 2000 routes
TypeScript yes!!
Hi your tutorial is amazing, i have a problem, the swagger when a running in my local show the swagger page and the APIS, but when a try run the swagger in my server AWS this show nothing.
what will be the problem so that it does not show anything in the server
Hi Maksim, thanks for Tutorial. It worked perfectly on localhost, but after deploying it shows "No operations defined in spec!" and no requests are shown. Please help me out with this issue.
how do you get the auto indenting inside the multi-line comment to work in vscode?
Hi, Thanks for video. I love your VS color scheme, can you please provide it so I can use it for myself?
Hi every one, great job! Only one thing, when I was use method POST, it was created new book but not added in db.json so I was changed // res.send(book) -->
res.send(req.app.db.get("books")
and now all working well for me.
can you tell me? what is theme and fonts you use for Vscode? thank you so much
Even if I press Execute button @16:37, I'm not shown the response. Whereas I am able to see the correct response from RESPONSE TAB from the browser dev tools. Why is that
What if my application is exposed to localhost:8081 and I want to serve my swagger docs on localhost:8080?
I am getting an error: Error [ERR_REQUIRE_ESM]: Must use import to load ES Module:
Any suggestions?
👍
what happend if I have several files with swagger code(Like at least 18 different files).. Where should i add them into my rooter ??
Of course TypeScript is the way to go.
Telll me please what color them for editor you use, thanks
More codes with TypeScript please
what do you use to auto generate line comments, spaces, etc? I've been trying a few vscode plugins but none seemed to work like yours
Yea same for me
For those who comes here to learn swagger, it starts at 9:52
at 7:14 you say you cut a corner and that you're only doing this because it's an example project. What would you be doing in a real-world app instead?
You need to define a specific model, because in the way he did it any format is valid, that isnt correct in a real project
nice video, I am looking for authentication Video using swagger
how injection style sheet for swagger? thanks you
please make the same video in typescript 🙏
How can you use require in an es module?
hi when i call post request only id is created title and author is not adding what is the issue
i use ...req.body
ruquire lol, the library by RuPaul :)
1) Suppose, I have a schema for Project model which contains 20 properties. Now for my project-dropdown API I only need 3 properties from the schema then how I can refer the schema and pick few properties only?
2) I have 2 schemas, one for Project with 20 properties and another one is Task with 10 properties. Now for ProjectDetails API I have response something like { id: 1, name: "ProjectName", tasks: [ {id: 1, name: "TaskName"} ] } Now how I can accomplish this nested object by referring both individual schema which are Project and Task
3) Can I have search box in Swagger UI to filter APIs?
Nice programming skill.
I am new to nodejs and looking for swagger api documentation, please share this code with me so that I will explore more on this.
Check descriptions
@@helloworld9655 please create video on node with typescript swagger.
If you have - "Error [ERR_REQUIRE_ESM]..."
In package.json
Downgrade:
"swagger-jsdoc": "6.0.0"
"lowdb": "1.0.0"
Upgrade dependencies, execute in console (project directory)
$ rm -rf node_modules/
$ npm install
How remove a book in lowdb version 3.0?. The method remove, not exists.
Hey how to use bearer token ? in swagger
wow theme beautiful . Can you tell me the name of this extension?
can you also create video for fastify swagger ?
what vscode theme is that? yes, i'm that person. love themes 😅
how can i add bearer token in header to the request
As you asked, javascript is fine by me
Getting swagger jsdoc import error please help to fix.
Please prefer typescript over JS... as this resonates with my liking too
9:48 for anyone here purely for the Swagger tutorial