NodeJS Swagger API Documentation Tutorial Using Swagger JSDoc

Sdílet
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...

Komentáře • 151

  • @raymondabid3258
    @raymondabid3258 Před 2 lety +4

    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!

  • @rafa_veiga
    @rafa_veiga Před 2 lety

    Hi Maksim! Thanks for sharing your knowledge, it helped me a lot with my new job. A big hug from Brazil.

  • @saboya700
    @saboya700 Před 2 lety +2

    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

  • @adrianzinko6292
    @adrianzinko6292 Před 2 lety +1

    This tutorial was very helpful for me, thank you. I'd like to see more of your tutorials in TS.

  • @codekomali1760
    @codekomali1760 Před 2 lety +19

    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

  • @mitchelleuzonna4523
    @mitchelleuzonna4523 Před rokem +1

    Amazing tutorial. Using typescript would be a welcome development.

  • @damonwu9658
    @damonwu9658 Před 3 lety +2

    Thanks Maksim, good stuff, and yup, I'd love to see some typescript knowledge share ~~

  • @syammohan3039
    @syammohan3039 Před 3 lety +2

    Found this very much useful for me as I am a beginner to Swagger :-)

  • @alint
    @alint Před 3 lety

    Thank you for the very informative video, loved the pace of the the scripting and the explanations! subscribed!

  • @hieu_nguyen_20
    @hieu_nguyen_20 Před 2 lety

    Easy to follow coding and awesome. Keep it up !

  • @feijobruno
    @feijobruno Před 3 lety +1

    This video helped me a lot. Thanks for the tutorial!!!

  • @avoidloves
    @avoidloves Před 3 lety +2

    Thanks for the tutorial!! Make a typescript playlist man.

  • @wimveldhuis1828
    @wimveldhuis1828 Před 2 lety

    Great tutorial, thanks Maksim!

  • @raymondmichael4987
    @raymondmichael4987 Před rokem

    Been searching for this, I’ll try to play with it when I got a chance, thanks 😊

  • @ilyacherkasov9251
    @ilyacherkasov9251 Před 3 lety +4

    Oh yes, good idea! I'd like to see examples in TypeScript

  • @andriisen1892
    @andriisen1892 Před 2 lety

    Максим! Спасибо огромное за суперское видео, поделюсь с братьями по стажировке)

  • @linclicin3326
    @linclicin3326 Před 2 lety

    Thank you very much for such an awesome tutorial. Yes, Please use Typescript

  • @JackSomethingTheShow
    @JackSomethingTheShow Před 2 lety +8

    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

  • @lewissheridan
    @lewissheridan Před 10 měsíci

    Nice job. Be great to add in the authentication bit. I managed to refer to the docs for that.

  • @adventurer2395
    @adventurer2395 Před 2 lety +6

    Awesome tutorial! Really like your examples. Any chance you could do another swagger tutorial with with typescript and mongoose/mongo?

  • @berakoc8556
    @berakoc8556 Před 3 lety

    This video helped me a lot. Thanks.

  • @artless-soul
    @artless-soul Před 3 lety

    Thank you for nice tutorial! typescript examples in future +1

  • @yossiarye6886
    @yossiarye6886 Před rokem

    Thank you, typescript will be great

  • @prasadphule
    @prasadphule Před 3 lety +18

    I'd love to see some Typescript in future for your code example.

  • @sede189
    @sede189 Před rokem

    Excellent tutorial

  • @samyh40
    @samyh40 Před 3 lety

    Pure gold! Thank you

  • @eliasnacherfernandez9237

    So clear code, nice work

  • @sergeykahnwald6640
    @sergeykahnwald6640 Před rokem

    Nice doing man!

  • @mehdigozar9627
    @mehdigozar9627 Před 2 lety

    Thank you. It was very good

  • @Dgiulian
    @Dgiulian Před 3 lety

    Great video. I would like to see more TS videos.

  • @raidalmoued664
    @raidalmoued664 Před 2 lety

    Very Good tutorial. Many thanks

  • @HovhannesGasparyan-ex4el
    @HovhannesGasparyan-ex4el Před 3 měsíci

    Thank you for the useful video)

  • @CodePremier2000
    @CodePremier2000 Před rokem

    Thank you so much❤❤
    Very helpful

  • @esmaeilmirzaee
    @esmaeilmirzaee Před 3 lety +1

    Using TypeScript as the programming language would be so nice.

  • @carloemil
    @carloemil Před 2 lety

    Yes, TypeScript would be better. Thanks for the video!

  • @galiprandi
    @galiprandi Před 2 lety

    I love typescript too!

  • @brendanduffy827
    @brendanduffy827 Před 2 lety

    great video thank you. maybe a mix of JS and TypeScript...for variety.

  • @bushranikhat2326
    @bushranikhat2326 Před 3 lety

    Thanks for this tutorial

  • @anvarichn
    @anvarichn Před rokem +2

    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!

  • @igormundim
    @igormundim Před 11 měsíci

    Thank you very much! 🇧🇷

  • @kiddosknowledgewizbyakshit9954

    Very helpful video....Thanks a lot
    Kindly make some video for authorization with the same

  • @abedaarabi3014
    @abedaarabi3014 Před 3 lety

    great job !

  • @xanyula2738
    @xanyula2738 Před 3 lety +2

    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

  • @tusharcitrusbug4912
    @tusharcitrusbug4912 Před rokem

    a perfect video for me

  • @pguti778
    @pguti778 Před 3 lety

    I'm using your example for a jobposting ! let's see what they say ! ;)

  • @techguy6049
    @techguy6049 Před 3 lety

    And i thought it will be about swagger. And it was. Lol. Robotic tutorial!

  • @vladmacovei1619
    @vladmacovei1619 Před 2 lety +2

    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.

  • @objectObject212
    @objectObject212 Před 2 lety +1

    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?

  • @2cents2go
    @2cents2go Před 2 lety

    cool example! I guess no one has done a video on how to customize swagger-ui-react documentation is scarce

  • @Beats4needs
    @Beats4needs Před 3 lety +20

    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.

    • @satansdeer1
      @satansdeer1  Před 3 lety +3

      Thanks for this update

    • @darcy4487
      @darcy4487 Před 3 lety +2

      You deserve a dollar

    • @TheIGORYA76
      @TheIGORYA76 Před 3 lety +3

      Had similar issue with lowdb had to go back and use npm i lowdb@1.0.0

    • @fromkotahujan
      @fromkotahujan Před 3 lety

      @@TheIGORYA76 great thanks 👍

  • @roba998877
    @roba998877 Před 2 lety

    +1 to Typescript

  • @JawadAli-xi5wh
    @JawadAli-xi5wh Před 3 lety +1

    Great tutorial. But a good readable theme (particularly for swagger comments) of the code editor would help to read the code.

    • @satansdeer1
      @satansdeer1  Před 3 lety +1

      do you know of any?

    • @runyalen
      @runyalen Před rokem

      yhea good idea... everything was gray... it wasn't super neet to see code

  • @supermt4793
    @supermt4793 Před 3 lety

    Thanks !

  • @huseyinbilen3535
    @huseyinbilen3535 Před 17 dny

    Nice tutorial thanx. What's your VS Code theme? It's look so good an understandable.

  • @segunthemarketer2195
    @segunthemarketer2195 Před rokem

    JavaScript please! Great video… Love it

  • @rutvikmehta4657
    @rutvikmehta4657 Před 3 lety

    i think your update documentation does not affect the database, i tried that. same query with postman fire perfectly worked!

  • @personal1935
    @personal1935 Před 3 lety +1

    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?

    • @satansdeer1
      @satansdeer1  Před 3 lety +2

      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

    • @personal1935
      @personal1935 Před 3 lety

      @@satansdeer1 Many thanks, I will check the NestJS

  • @ryannichols1798
    @ryannichols1798 Před rokem

    may be a bit late but I'd like the typescript content much more

  • @tobaojo2292
    @tobaojo2292 Před rokem

    Nice tutorial. Can we have one which includes the authorization header?

  • @oluwatoyinbalogun1684
    @oluwatoyinbalogun1684 Před 3 lety

    Thanks alot for the video. I would prefer Typescript

  • @octaviusbytes
    @octaviusbytes Před 2 lety

    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.

  • @jonathannieto9203
    @jonathannieto9203 Před 3 lety +1

    Me encantarían ejemplos con typescript

  • @farenrai576
    @farenrai576 Před 3 lety

    is it possible swagger notation define in separate file ? not in route section if more then 1000 or 2000 routes

  • @albertoarriaga9611
    @albertoarriaga9611 Před 3 lety

    TypeScript yes!!

  • @Eibon1599
    @Eibon1599 Před 2 lety

    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

  • @mrugeshprajapati6406
    @mrugeshprajapati6406 Před rokem

    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.

  • @Stevexupen
    @Stevexupen Před rokem

    how do you get the auto indenting inside the multi-line comment to work in vscode?

  • @Huntergaming-ci7un
    @Huntergaming-ci7un Před 3 lety +1

    Hi, Thanks for video. I love your VS color scheme, can you please provide it so I can use it for myself?

  • @KonstantinMiami
    @KonstantinMiami Před 3 lety

    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.

  • @nguyenvanai6872
    @nguyenvanai6872 Před 2 lety

    can you tell me? what is theme and fonts you use for Vscode? thank you so much

  • @thegrind9628
    @thegrind9628 Před rokem

    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

  • @manthanguptaa
    @manthanguptaa Před 3 lety

    What if my application is exposed to localhost:8081 and I want to serve my swagger docs on localhost:8080?

  • @j.k.ravshanovich
    @j.k.ravshanovich Před 2 lety +2

    I am getting an error: Error [ERR_REQUIRE_ESM]: Must use import to load ES Module:
    Any suggestions?

  • @umarabdullahi3811
    @umarabdullahi3811 Před 3 lety

    👍

  • @runyalen
    @runyalen Před rokem +1

    what happend if I have several files with swagger code(Like at least 18 different files).. Where should i add them into my rooter ??

  • @RealEstate3D
    @RealEstate3D Před rokem

    Of course TypeScript is the way to go.

  • @LaSombraDeMuerte
    @LaSombraDeMuerte Před 3 lety

    Telll me please what color them for editor you use, thanks

  • @smolahloe
    @smolahloe Před 3 lety

    More codes with TypeScript please

  • @drlambo
    @drlambo Před 2 lety

    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

  • @luzaw4957
    @luzaw4957 Před 3 lety +2

    For those who comes here to learn swagger, it starts at 9:52

  • @adamtak3128
    @adamtak3128 Před 3 lety +2

    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?

    • @juanjoseordonez8669
      @juanjoseordonez8669 Před 2 lety

      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

  • @rafatanzeem4040
    @rafatanzeem4040 Před rokem

    nice video, I am looking for authentication Video using swagger

  • @nguyenvanai6872
    @nguyenvanai6872 Před 2 lety

    how injection style sheet for swagger? thanks you

  • @mddanish8704
    @mddanish8704 Před 2 lety

    please make the same video in typescript 🙏

  • @AsSoBuT
    @AsSoBuT Před 3 lety

    How can you use require in an es module?

  • @tonygeorge7482
    @tonygeorge7482 Před 3 lety

    hi when i call post request only id is created title and author is not adding what is the issue
    i use ...req.body

  • @ofjdaz
    @ofjdaz Před 3 lety

    ruquire lol, the library by RuPaul :)

  • @deepgandhi1106
    @deepgandhi1106 Před 2 lety

    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?

  • @BheemuR
    @BheemuR Před 2 lety

    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.

    • @helloworld9655
      @helloworld9655 Před 2 lety

      Check descriptions

    • @BheemuR
      @BheemuR Před 2 lety

      @@helloworld9655 please create video on node with typescript swagger.

  • @bbz9002
    @bbz9002 Před 3 lety +4

    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

  • @martindm6019
    @martindm6019 Před 2 lety

    How remove a book in lowdb version 3.0?. The method remove, not exists.

  • @abhik9077
    @abhik9077 Před 7 měsíci

    Hey how to use bearer token ? in swagger

  • @HinhTranVan
    @HinhTranVan Před rokem

    wow theme beautiful . Can you tell me the name of this extension?

  • @silvesterwali6565
    @silvesterwali6565 Před 2 lety

    can you also create video for fastify swagger ?

  • @rebeccaburch3334
    @rebeccaburch3334 Před 2 lety

    what vscode theme is that? yes, i'm that person. love themes 😅

  • @AhmedIbrahim-wx8sm
    @AhmedIbrahim-wx8sm Před 2 lety

    how can i add bearer token in header to the request

  • @ugwukelechi4138
    @ugwukelechi4138 Před rokem

    As you asked, javascript is fine by me

  • @hypersudo8092
    @hypersudo8092 Před 3 lety

    Getting swagger jsdoc import error please help to fix.

  • @funtym6083
    @funtym6083 Před rokem

    Please prefer typescript over JS... as this resonates with my liking too

  • @teyiadzufehh
    @teyiadzufehh Před 9 měsíci

    9:48 for anyone here purely for the Swagger tutorial