How to Implement API Versioning for Minimal APIs | ASP.NET Core 8

แชร์
ฝัง
  • เผยแพร่เมื่อ 25 ก.ย. 2024

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

  • @MilanJovanovicTech
    @MilanJovanovicTech  7 หลายเดือนก่อน +3

    Want to master Clean Architecture? Go here: bit.ly/3PupkOJ
    Want to unlock Modular Monoliths? Go here: bit.ly/3SXlzSt

  • @codeme8016
    @codeme8016 7 หลายเดือนก่อน +2

    Very clear. Some tutorials aren't but this one was outstanding. Thank you!

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

      Glad you enjoyed it! When you say "Some tutorials aren't" - do you mean on my channel? I'd appreciate any feedback, if you're keen on sharing.

  • @XelleczixTV
    @XelleczixTV 7 หลายเดือนก่อน +2

    Love your videos! A little tip: you should increase the volume of your mic 😊 Have to turn up quite a lot to hear you clearly.

  • @FungoTech
    @FungoTech 4 วันที่ผ่านมา

    Thanks, great example of configuration.

  • @developmentroselino
    @developmentroselino 3 หลายเดือนก่อน +1

    milan saved the day once again

  • @10Totti
    @10Totti 7 หลายเดือนก่อน +4

    Nice tutorial thanks!

  • @alexmadnix
    @alexmadnix 7 หลายเดือนก่อน +3

    Great video as always!

  • @xentricator
    @xentricator 7 หลายเดือนก่อน +1

    @MilanJovanovicTech how would you implement this kind of versioning when the seperate versions have a different contract (which is usually the reason why you would create another version, due to it being a different contract often results in breaking changes). Currently in your example you are always routing to the same implementation with the same contract whether it's v1 or v2.

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

      You can define two request contracts, and expose each one on the respective endpoint V1 or V2

  • @sunzhang-d9v
    @sunzhang-d9v 7 หลายเดือนก่อน +1

    CreateUser API, there is only one V1 version, but the V2 version of SwaggerUI also appears, how to make the V2 version not displayed?

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

      Nope, both V1 and V2 were configured for all APIs

  • @raiscl
    @raiscl 2 หลายเดือนก่อน

    Could we all as a group drop the X on custome headers? It's been more than a decade that this is not mandatory anymore and it is actually advised against! Besides, just polute code on FE and BE....
    a part of that. Amazing tutorial!!

    • @MilanJovanovicTech
      @MilanJovanovicTech  2 หลายเดือนก่อน +2

      I don't know about that. I know it's not required. But I simply like having the X- prefix to denote custom headers. Also makes it easier for me to find them in source code with search.

  • @kyamcollados8538
    @kyamcollados8538 7 หลายเดือนก่อน +1

    hey man, i tried to follow your tutorial and i got stuck in the swagger ui page. i could not see the v2 in the dropdown. anything i missed?

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

      Register the Minimal API endpoints before configuring Swagger options?

  • @heischono4917
    @heischono4917 19 วันที่ผ่านมา

    Thanks for this video. I miss the case when I wish to go over from a MVC Api (v1) to Minimal Api (v2). Is it simple to mix these 2 kinds of Api or should I use a more simple approach with manually define v2 in the routes?

    • @MilanJovanovicTech
      @MilanJovanovicTech  19 วันที่ผ่านมา

      Haven't thought of that. Makes me wonder if the routes will conflict in any way, but I assume not.

  • @MrNobody-f8f
    @MrNobody-f8f 5 หลายเดือนก่อน +1

    hey milan thanks. did you try with version 8.1.0? it will say that the swagger endpoint is not found

    • @MilanJovanovicTech
      @MilanJovanovicTech  5 หลายเดือนก่อน +1

      No, I did not. But I'll check it out and see why that could be

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

    Content of the video is too good and I always learn something new from your videos but you haven’t talk about the breaking changes in this video. Is there a new video coming for breaking changes or missed it if I missed that concept can you please provide the timestamp.
    Thanks 😊

    • @MilanJovanovicTech
      @MilanJovanovicTech  7 หลายเดือนก่อน +1

      Yeah, it kind of went over the top of my head 😅 Check this out for more info: www.milanjovanovic.tech/blog/api-versioning-in-aspnetcore

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

      @@MilanJovanovicTech Thanks will have a look ☺️

  • @TheScriptPunk
    @TheScriptPunk 7 หลายเดือนก่อน +1

    Now this is a valuable video

  • @vishalpawarsblogs8077
    @vishalpawarsblogs8077 6 หลายเดือนก่อน

    when we define route with `v{v:apiVersion}/controller` , how default version will work?
    how AssumeDefaultVersionWhenUnspecified will work in such case?

    • @MilanJovanovicTech
      @MilanJovanovicTech  6 หลายเดือนก่อน

      You're going to configure one of the API versions as "default": 4:35

  • @andyhb1970
    @andyhb1970 5 หลายเดือนก่อน

    Is it possible that there is an issue when using Carter to register map the endpoints, I have setup a Test endpoint with 2 versions and when I call it I get... System.InvalidOperationException: Duplicate endpoint name 'Testing' found on 'HTTP: GET api/v{apiVersion:apiVersion}/auth/testing => Logout' and 'HTTP: GET api/v{apiVersion:apiVersion}/auth/testing => Logout'. Endpoint names must be globally unique.

    • @andyhb1970
      @andyhb1970 5 หลายเดือนก่อน

      Just realized the error message was referring to the Name which you aren't setting in your example which seems to have resolved things 👍

    • @MilanJovanovicTech
      @MilanJovanovicTech  5 หลายเดือนก่อน

      Glad you fixed it 😁

  • @Yehor-Lesnevych
    @Yehor-Lesnevych 7 หลายเดือนก่อน

    Hey! I have an issue with swagger and api versioning. I did all the steps in the video but calling app.DescribeApiVersions() throws exception "System.FormatException: 'Input string was not in a correct format.'"

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

      Did you configure the required services?

    • @Yehor-Lesnevych
      @Yehor-Lesnevych 7 หลายเดือนก่อน

      ​@@MilanJovanovicTech yes, I did. builder.Servises.ConfigureOptions()

    • @Yehor-Lesnevych
      @Yehor-Lesnevych 7 หลายเดือนก่อน

      ​@@MilanJovanovicTechyes, I did everything in video

  • @andyhb1970
    @andyhb1970 5 หลายเดือนก่อน

    When using the version number as part of the route can you still use Postman to import the OpenAPI as I'm only seeing the v1 assuming it was part of the same issue as the swagger UI I tried adding the swagger gen option configuration elements but it still only returns version 1?

    • @MilanJovanovicTech
      @MilanJovanovicTech  5 หลายเดือนก่อน

      The v2 is a different Open API document - so you'd have to import both

    • @andyhb1970
      @andyhb1970 5 หลายเดือนก่อน

      @@MilanJovanovicTech ah yes of course, sorry I have become used to copying and pasting the OpenAPI link I didn't pay the version part of the route any attention, infact in postman if you paste the link it auto submits it! Thanks for your prompt response.

  • @jithin.johnson
    @jithin.johnson 3 หลายเดือนก่อน

    when using Carter, how to implement versioning?

    • @MilanJovanovicTech
      @MilanJovanovicTech  3 หลายเดือนก่อน +1

      Version on the route group, or when mapping the endpoint

  • @kien-dang
    @kien-dang 6 หลายเดือนก่อน

    Hey Milan, how can you implement API versioning to work with Carter? I use vertical slide architecture with the implementation of ICarterModule and AddRoutes separately in individual classes. I don't want to declare NewApiVersionSet repeatedly in many AddRoutes(IEndpointRouteBuilder app). Thanks

    • @MilanJovanovicTech
      @MilanJovanovicTech  6 หลายเดือนก่อน

      Doesn't Carter have an abstraction for something like that? I would be surprised that it's not supported

    • @kien-dang
      @kien-dang 6 หลายเดือนก่อน +1

      I've been searching around but it seems doesn't have something for that. I might have to implement an extension myself. Thanks for the video and that would be great if you can find another way to work with Carter for this matter.

  • @Megha-f7d
    @Megha-f7d 7 หลายเดือนก่อน

    I didn't see much about the vlogs of the day in the life of dotnet developers, How much they can make, what kind of companies require them and future of dotnet. Please you make

  • @ferventurart
    @ferventurart 6 หลายเดือนก่อน

    When a video about how add open api summary, description, params and responses (documenting our endpoints)

  • @chrissu9354
    @chrissu9354 6 หลายเดือนก่อน

    hi,good vid,
    there's a little question
    which is the theme was?
    really awesome theme
    plz name for me~ thx.

    • @MilanJovanovicTech
      @MilanJovanovicTech  6 หลายเดือนก่อน +1

      It's ReSharper syntax highlighting

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

    Very informative❤
    What is customresults here?

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

      From here: th-cam.com/video/YBK93gkGRj8/w-d-xo.html

  • @aamirali8114
    @aamirali8114 6 หลายเดือนก่อน

    why dont you provide code to learn your one concept we have fill up the blank of incomplete code which take more time and we move to another syllabus and forget why we started this thing

  • @Paul-uo9sv
    @Paul-uo9sv 7 หลายเดือนก่อน

    Can we have one vid for non minimal apis?

  • @YehorBachurinDev
    @YehorBachurinDev 7 หลายเดือนก่อน +1

    Thanks!

  • @sunzhang-d9v
    @sunzhang-d9v 7 หลายเดือนก่อน +1

    Not being able to have XML comments like controllers, unhappy

  • @JedaiasRodrigues7
    @JedaiasRodrigues7 3 หลายเดือนก่อน

    Thanks a lot! 👊

  • @sunzhang-d9v
    @sunzhang-d9v 7 หลายเดือนก่อน

    good job

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

    das ist fantastic🤩

  • @sunzhang-d9v
    @sunzhang-d9v 7 หลายเดือนก่อน

    There is only one API with V1 and V2 versions, so SwaggerUI has them all

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

      You can also deprecate a V1 endpoint, and it'll be greyed out in SwaggerUI

  • @whosgotrythm
    @whosgotrythm 3 หลายเดือนก่อน

    Good video. Can you controllers in your videos as that is what commercial applications use. Still this is great info

    • @MilanJovanovicTech
      @MilanJovanovicTech  3 หลายเดือนก่อน

      Explained here: www.milanjovanovic.tech/blog/api-versioning-in-aspnetcore

  • @kis.stupid
    @kis.stupid 7 หลายเดือนก่อน +1

    Ooh must watch