OpenAPI 3.0: How to Design and Document APIs with the Latest OpenAPI Specification 3.0

แชร์
ฝัง
  • เผยแพร่เมื่อ 20 ส.ค. 2024
  • The OpenAPI Specification (OAS), based on the original Swagger 2.0 specification, has emerged as the world’s standard for defining and describing RESTful APIs. Learn more about OpenAPI 3.0 here: www.slideshare...
    Get started with OpenAPI 3.0 in SwaggerHub for free: swaggerhub.com/
    The next version of the OAS - version 3.0 - is officially released, and comes with a host of rich, expressive capabilities for your API design and documentation. Some of these capabilities include support for describing callbacks, links to express relationships between operations, enhanced examples, and a simplified structure.
    In this free SwaggerHub training, we look at what’s new in OAS 3.0, and show a live demo of defining APIs using OAS 3.0 in SwaggerHub.
    We will cover:
    • What’s new in OpenAPI 3.0?
    • Transitioning from Swagger 2.0 to OAS 3.0
    • Designing an API using OAS 3.0 on SwaggerHub
    • Collaborative approach to API design and documentation with OAS 3.0 in SwaggerHub
    Subscribe to all SmartBear videos here: www.youtube.co...

ความคิดเห็น • 116

  • @keshavvasudevan6774
    @keshavvasudevan6774 6 ปีที่แล้ว +60

    Thank you all for the amazing feedback! We really appreciate it!

    • @itsfrx2143
      @itsfrx2143 6 ปีที่แล้ว

      Well explained man!

    • @AmeenAltajer
      @AmeenAltajer 3 ปีที่แล้ว

      Amazing explanation!

    • @ajnikhil
      @ajnikhil 2 ปีที่แล้ว

      why have a fake accent ? were you born in US?

  • @lifeLoges
    @lifeLoges 2 ปีที่แล้ว +22

    The time is approximate
    01:17 Why ?
    04:20 Solution
    05:28 What is OpenAPI and what is swagger
    06:09 What is new on OAPI 3
    06:51 Specification restructure and improve usability
    -- 08:10 Parameters
    -- 09:11 Contact negotiation
    09:37 Demo
    -- 09:37 Overview
    -- 10:21 Planning
    -- 11:10 How they going to build it ( tools)
    -- 12:10 How to create API in swagger hub
    50:17 Resources and Q/A

  • @dannavarez1372
    @dannavarez1372 6 ปีที่แล้ว +36

    Love the way it was explained. Straightforward. No flowering words. Direct to the point. Appreciated much.

  • @vishnudas4995
    @vishnudas4995 6 ปีที่แล้ว +31

    That's how one should explain things, awesome and conceptually clear.

  • @isurucumaranathunga
    @isurucumaranathunga ปีที่แล้ว

    Within last 2 days I was searching for a resource to learn open API specification and swagger and this is the best tutorial I had ever found. very straight forward and to the point. Thanks for this content.

  • @kwameadoko9542
    @kwameadoko9542 3 ปีที่แล้ว

    A few years ago, I check the date on a post, the number of views and comments to watch a video on youtube (If it has a long date, fewer views, likes, and comments, GONE!). But with time I have come to realize some videos are just not meant for everyone. But this video, GREAT ✌🏽

  • @abcdeika
    @abcdeika 4 ปีที่แล้ว +2

    Great tutorial. Loved it. Got a better understating of OpenAPI from this 1h video rather than reading for hours some course-tutorial. Like!

  • @vy9076
    @vy9076 3 ปีที่แล้ว +1

    Very clear and up to the point. Just shows how documentation is SO important

  • @valecmeza
    @valecmeza 3 ปีที่แล้ว

    This is just what I needed to learn how to create an API spec. Straight to the point. Thank you!

  • @raywachaga
    @raywachaga 5 ปีที่แล้ว +4

    A rare gem. Thank you sir!

  • @nareshbalimidi6219
    @nareshbalimidi6219 4 ปีที่แล้ว

    Thank you soo much...I created my first API by watching this video...this is really helpful...

  • @ddgupta5514
    @ddgupta5514 2 ปีที่แล้ว +1

    Excellent tutorial for the beginners...

  • @mrstanlez
    @mrstanlez 2 ปีที่แล้ว +2

    Next question is, how to use it OFFLINE ?

  • @eugenefriday2039
    @eugenefriday2039 3 ปีที่แล้ว +1

    Well structured, great explanation, and excellent example! Saves time reading myriads of documentations.

  • @timmi00007
    @timmi00007 3 ปีที่แล้ว

    Simply cool. It certainly gives a jump start to API Development especially with 3.0. Thanks!

  • @sukeshc
    @sukeshc 2 ปีที่แล้ว

    Nice ! Short,crisp and clear

  • @niyatimanish121
    @niyatimanish121 3 ปีที่แล้ว +2

    Thank you for explaining this so well! Needed it.

  • @BeforeAndAfterScience
    @BeforeAndAfterScience 2 ปีที่แล้ว +3

    "Your API's no longer a black box, there's actually a RESTful interface that allows your clients to actually interact with the data or service you want to expose." Tell me you don't understand what a black box is without saying you don't understand what a black box is.

  • @gowinidea
    @gowinidea ปีที่แล้ว

    Thank you very much for sharing this knowledge. Appreciated!

  • @mrstanlez
    @mrstanlez 2 ปีที่แล้ว +1

    The question is, why I need OpenAPI 3.0 ? Cause every company have own requirements.

  • @vijayb1620
    @vijayb1620 6 ปีที่แล้ว +3

    Very nice and detail presentation ...!!! GOOD Job Keshav

  • @byteslinger3187
    @byteslinger3187 ปีที่แล้ว

    very good video but It honestly had me wishing there was a 5x speed on youtube

  • @ThiagoOliveira-pk7ci
    @ThiagoOliveira-pk7ci 6 ปีที่แล้ว +2

    Good presentation. The only weird thing is that you post the employ ID on Post trigger. But thanks for the video.

  • @ShubhamGupta-re1go
    @ShubhamGupta-re1go 3 หลายเดือนก่อน

    Thanks , very clear explanation

  • @pramodsinghyadav7580
    @pramodsinghyadav7580 2 ปีที่แล้ว

    great explanation with practical point of view.

  • @poreddyvemareddy3685
    @poreddyvemareddy3685 9 หลายเดือนก่อน

    Clear explanation. Thanks 🙏

  • @Sasikumar8
    @Sasikumar8 5 ปีที่แล้ว +1

    Keshav neenga vera level boss.

  • @chandansarkar1123
    @chandansarkar1123 4 ปีที่แล้ว

    Very cool introduction to the subject matter. Thanks a lot for the video

  • @rice_polygriffe
    @rice_polygriffe 6 ปีที่แล้ว +1

    That's good. Following your exact steps, I am getting these errors :
    Schema error at paths['/employees'].post.requestBody
    should have required property '$ref'
    missingProperty: $ref
    Jump to line 65
    Schema error at paths['/employees'].post.requestBody
    should match exactly one schema in oneOf
    Jump to line 65
    Schema error at paths['/employees'].post.requestBody.content['application/json']
    should be object
    Jump to line 67
    Schema error at paths['/employees'].post.requestBody.content['schema']
    should NOT have additional properties
    additionalProperty: type, properties
    Jump to line 69

  • @briankhuele1558
    @briankhuele1558 4 ปีที่แล้ว

    Awesome explanation!!! Thank you so much and shout out to the swagger team ;)

  • @deepgandhi1106
    @deepgandhi1106 2 ปีที่แล้ว +1

    Here, I can not found answers, what I'm looking for. I have several queries. It will really help me if anyone can answer.
    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?

  • @michaelcanavan4324
    @michaelcanavan4324 ปีที่แล้ว

    Very clear, thank you.

  • @abdulmatin1598
    @abdulmatin1598 3 ปีที่แล้ว

    It was really a great introduction.

  • @Name-lt2tz
    @Name-lt2tz หลายเดือนก่อน

    any good tutorial on how to use those with php attributes in symfony instead of writing in yaml?

  • @wasimhbaig
    @wasimhbaig 6 ปีที่แล้ว

    Thanks Keshav, very nicely done...

  • @abdelkrimboureche7192
    @abdelkrimboureche7192 6 ปีที่แล้ว +1

    Thank you for this excellent video.

  • @mfolarin
    @mfolarin 3 ปีที่แล้ว

    Blessed tutor. Thanks!

  • @AmolGautam
    @AmolGautam ปีที่แล้ว

    Thank you so much

  • @aashishjuneja350
    @aashishjuneja350 4 ปีที่แล้ว

    Well explained..... Thanks for sharing wonderful knowledge

  • @basamnath3021
    @basamnath3021 3 ปีที่แล้ว

    Excellent video

  • @aiautoglasscrm
    @aiautoglasscrm ปีที่แล้ว

    Your demo was great, why? first you showed in action. and second you explained clearly what we can do. only limited by our imagination.

  • @SN-zr3rf
    @SN-zr3rf 2 ปีที่แล้ว

    Dear All/Host of this Video,
    Good you please provide details about How to secure this REST API while it is being hosted in public domain?

  • @004akshay
    @004akshay 4 ปีที่แล้ว

    thank you Keshav..

  • @ravisankarjampani213
    @ravisankarjampani213 ปีที่แล้ว

    Excellent

  • @design7054
    @design7054 3 ปีที่แล้ว

    Great intro, thank you.

  • @alagappannarayanan6635
    @alagappannarayanan6635 3 ปีที่แล้ว

    Nice demo

  • @cptechno
    @cptechno 4 ปีที่แล้ว +1

    You don' mention where you are getting the names and level of all fields you are typing.

  • @karviworld7627
    @karviworld7627 3 ปีที่แล้ว

    Quite descriptive

  • @Faiz-canada
    @Faiz-canada 6 ปีที่แล้ว +1

    Excellent presentation. Hats off !!! Just one thing , it is possible to provide sample request and response rather than defining object and array ?

  • @CrickMovieLove
    @CrickMovieLove 4 ปีที่แล้ว

    Nicely explained..!!

  • @recordable542
    @recordable542 4 ปีที่แล้ว

    extremly helpful!

  • @kusumrawat4735
    @kusumrawat4735 2 ปีที่แล้ว

    can u share best practices of openAPI Specification

  • @donovanfaber9211
    @donovanfaber9211 4 ปีที่แล้ว +3

    Thanks for the video, so helpful in starting out! I do have a question though, when you create and use your $ref, why are you not getting an error that there is a sibling value (in your case type) alongside your $ref?
    What would be the best way to handle this? Thank you again, awesome stuff!

    • @HandledToaster2
      @HandledToaster2 2 ปีที่แล้ว +2

      Hey, I know I'm late but the solution is to put the "type: object" in the "Employee" inside components, right under description, just like he did for "Employees" where "type: array" is there.
      Then erase "type: object" from the rest of the code.

  • @zaccomusic
    @zaccomusic 3 ปีที่แล้ว

    amazing content friend

  • @pfigueiredoytb
    @pfigueiredoytb 3 ปีที่แล้ว

    Great video :)

  • @germantellez2710
    @germantellez2710 5 ปีที่แล้ว +2

    Excellent presentation. I have one question, how do you know what words write? where can i find the glossary o list of words allowed? I'm new designing API with swagger

    • @Smartbear
      @Smartbear  5 ปีที่แล้ว +1

      Thank you! This tutorial will help you with writing OAS definitions: app.swaggerhub.com/help/tutorials/openapi-3-tutorial

  • @rajkrishnamurthy4978
    @rajkrishnamurthy4978 6 ปีที่แล้ว

    Good presentation. Thanks.

  • @sinigeorge7485
    @sinigeorge7485 ปีที่แล้ว

    Could you please share how to create error schema for http error codes

  • @shripal.modani
    @shripal.modani 6 ปีที่แล้ว +1

    Thank you so much!

  • @jb42192
    @jb42192 5 ปีที่แล้ว

    Great explanation :)

  • @FileHorsecom
    @FileHorsecom 6 ปีที่แล้ว

    Great video! All the best

  • @AbhishekSharma-ed4vo
    @AbhishekSharma-ed4vo 2 ปีที่แล้ว

    Hi I liked the video. Thanks for sharing. I have a specific question: if we have a crud operation to return true/false, how we will modify the response for it?
    Also how to add the pagination to the specific crud operation let's say GET operation?
    Any help on that will be much appreciated..

  • @seenuarunandirajendran4677
    @seenuarunandirajendran4677 6 ปีที่แล้ว

    Well explained !!

  • @saikiran4
    @saikiran4 5 ปีที่แล้ว

    I"ve generated petstore api using the openapi generator but can anyone explain how to write the code implementation of it by using json/yaml format? it is only creating the interfaces and controller classes which returns http response as not implemented.(I'm using springboot)

  • @CynthiaToussi-hw5zj
    @CynthiaToussi-hw5zj ปีที่แล้ว

    Bonjour je suis nouvelle sur les api rest et il m'a été demandée de réaliser la documentation open Api d'un diagramme de classe je voudrais savoir comment on fait

  • @myselfMaky
    @myselfMaky 4 ปีที่แล้ว

    Can anyone help to understand how to test the OpenAPI?

  • @DenFri91
    @DenFri91 4 ปีที่แล้ว

    Thanks for the great tutorial. How do i use OAuth2 client credentials for secure server to server communication? I cant find a proper tutorial or documentation for this. Most of them has their focus on user interaction.

  • @supunbatagoda8061
    @supunbatagoda8061 ปีที่แล้ว

    Is they are any way to hide Schema/Models from API Documentation in SwaggerHub?

  • @ajit555db
    @ajit555db 5 ปีที่แล้ว

    Great presentation. Is there one for advanced modeling too?

  • @harshalagrawal03
    @harshalagrawal03 6 ปีที่แล้ว

    how to handle the situation of multiple path parameters

  • @Amol175
    @Amol175 3 ปีที่แล้ว

    How I can secure the nodejs generated stub

  • @durgaraju8018
    @durgaraju8018 5 ปีที่แล้ว

    how to connect this API to a oracle database and how can we manipulate the data in oracle database through this API designed.

  • @vpremanand
    @vpremanand 4 ปีที่แล้ว

    Good presentation... have a question... "servers" tag, is it mandatory to define the host servers in the open api yaml definition file? maybe when we do publish these apis to be used through URLs, but most of the cases (dev, test, etc) while defining the APIs these info is not static isn't it?

  • @jhonatanmd8587
    @jhonatanmd8587 5 ปีที่แล้ว

    Buen vídeo , pero hubieras probado el api en swagger

  • @chandrakantbhavar98
    @chandrakantbhavar98 4 ปีที่แล้ว

    I want use servers , currently we have 4 env. and I want to execute few api based on 1 server, few api on other server. Can I do this using openapi 3.0.0

  • @tejashavale8085
    @tejashavale8085 2 ปีที่แล้ว

    can we hide parameters from the UI?

  • @design7054
    @design7054 3 ปีที่แล้ว

    Preview window shows: "We're sorry, but an error occured in this component. Please check the console for details."

  • @SoundOfYourDestiny
    @SoundOfYourDestiny 3 ปีที่แล้ว +1

    At 36:00 I don't think this is the type of parameter you want to put in a path. An employee ID is a great example of a query parameter; not something from which you want to build a unique endpoint with. A path parameter would contain values like "evaluations," "taxDocuments," insuranceElections," "projectHistory..." These are things that define entire subsets of data about their parent.

    • @mcdonaldslover52
      @mcdonaldslover52 11 หลายเดือนก่อน

      what if you were building a portal for employees where they can view tasks assigned, store personal documents, view & update their personal details. All of that would fall under an employee entity

    • @SoundOfYourDestiny
      @SoundOfYourDestiny 11 หลายเดือนก่อน +1

      @@mcdonaldslover52 Indeed, I'm not sure I agree with my past opinion on this anymore.

  • @SzTz100
    @SzTz100 4 ปีที่แล้ว +1

    Bro, why you generating swagger docs by hand?

    • @koraytugay
      @koraytugay 3 ปีที่แล้ว

      How else can he generate if implementation does not exist yet?

    • @SzTz100
      @SzTz100 3 ปีที่แล้ว

      @@koraytugay Spend time on the implementation, then auto-generate the swagger docs using a framework, otherwise just time wasting.

    • @design7054
      @design7054 3 ปีที่แล้ว

      What's the usual best practice alternative to craeating swagger docs by hand?

    • @SzTz100
      @SzTz100 3 ปีที่แล้ว

      @@design7054 I use FastAPI for Python and Swashbuckle for .net core, they both autogenerates auto-generates the swagger docs for me. I've never needed to hand-code swagger docs.

  • @vivekrawatvlogs
    @vivekrawatvlogs 6 ปีที่แล้ว

    I am getting a warning "Sibling values are not allowed alongside $refs" after adding the reference to Employee model. Any idea why?

    • @robell1954
      @robell1954 5 ปีที่แล้ว

      I got this too, after some playing about, and commenting out type: object it seemed to get rid of the compilation warning. However, I haven't got to the end of the video as yet, so don't know if this will have any other knock on effect...
      200:
      description: Successful user info retrieved
      content:
      application/json:
      schema:
      # type: object
      $ref: '#/components/schemas/Users'

  • @manishjakhode9541
    @manishjakhode9541 5 ปีที่แล้ว

    How to define same api resource for multiple roles for example register api for user role normal_user, custom_user, admin and so on? could you please let me know?

    • @Smartbear
      @Smartbear  5 ปีที่แล้ว

      The components section of the specification can be referenced multiple times swagger.io/docs/specification/using-ref/. Swaggerhub takes this to the next level by storing these reusable assets in a separate file, allowing them to be used across multiple APIs app.swaggerhub.com/help/domains/index. I hope this helps!

    • @manishjakhode9541
      @manishjakhode9541 5 ปีที่แล้ว

      Thanks for your reply. but both the links that you have shared with me not working. so could you please let me know how to do that?

    • @Smartbear
      @Smartbear  5 ปีที่แล้ว

      Here you go, let me know if these do not work for you: swagger.io/docs/specification/using-ref/ & app.swaggerhub.com/help/domains/index

  • @Name-lt2tz
    @Name-lt2tz หลายเดือนก่อน

    is this still relevant? 7 years passed, but looks like in symfony current it still is used OAS 3.0 . Weird.

  • @narenkv74
    @narenkv74 6 ปีที่แล้ว

    Do you have a product like swagger which generates OAS 3.0 specifications

    • @Smartbear
      @Smartbear  6 ปีที่แล้ว

      Hi Narendra! Yes we do. You can check out Swagger Inspector here: swagger.io/swagger-inspector/

  • @yaashchauhaan
    @yaashchauhaan 5 ปีที่แล้ว

    I need to know how to implement pagination .. can anyone help me pls ?

    • @Smartbear
      @Smartbear  5 ปีที่แล้ว

      While recording, click on "New Page" within the Instaplay Recorder.

    • @keshavvasudevan6774
      @keshavvasudevan6774 5 ปีที่แล้ว +1

      You can implement pagination using linking. Learn more here swagger.io/docs/specification/links/

  • @ThomasLunsford
    @ThomasLunsford 6 ปีที่แล้ว

    It was impossible to open this video fullscreen on the swagger.io site. Couldn't right click. Couldn't click anywhere near the youtube controls. Was this on purpose?

  • @linhledieu5403
    @linhledieu5403 7 หลายเดือนก่อน

    31:05

  • @sc06mad
    @sc06mad 4 ปีที่แล้ว

    okay my name is Rajeet and now we will talk about a shitty pee pee request

  • @maxime9728
    @maxime9728 4 ปีที่แล้ว

    test

  • @ahmadmostafa46
    @ahmadmostafa46 4 ปีที่แล้ว

    33:42 because you are using Windows LOL

  • @kennethcarvalho3684
    @kennethcarvalho3684 ปีที่แล้ว

    An Indian and an American I think!!