Spring MVC Http Interfaces - How to Create a Rest Client with almost no code!

Поделиться
HTML-код
  • Опубликовано: 29 фев 2024
  • In this tutorial you will learn how to use Http Interfaces in Spring MVC. In Spring Boot 3.2 Http Interfaces will use the new Rest Client allowing you take advantage of Http Interfaces without having to pull in any other dependencies.
    🔗Resources & Links mentioned in this video:
    Spring Academy: spring.academy/guides/http-in...
    👋🏻Connect with me:
    Website: www.danvega.dev
    Twitter: / therealdanvega
    Github: github.com/danvega
    LinkedIn: / danvega
    Newsletter: www.danvega.dev/newsletter
    SUBSCRIBE TO MY CHANNEL: bit.ly/2re4GH0 ❤️
  • НаукаНаука

Комментарии • 35

  • @Salvvy
    @Salvvy 3 месяца назад +8

    Fantastic introduction to Http Interfaces. Would love to see how this can interact with APIs with OAuth (if at all)

    • @mrcoder9401
      @mrcoder9401 2 месяца назад

      +1, Would love to see how this can interact with APIs with OAuth

  • @arghyamitra3281
    @arghyamitra3281 3 месяца назад +7

    Great 💯 love to see how to add interceptor ( eg: want to add a header ) nd error handling with it

  • @AgrimRocks
    @AgrimRocks 3 месяца назад +2

    If you are using ultimate edition, you can create new project using spring initializer from within the ide using File -> New Project -> Spring Initializer

    • @DanVega
      @DanVega  3 месяца назад +4

      Thank you! I try to remember that not everyone is using IntelliJ ultimate edition and thats why i use start.spring.io

  • @AdrianVrabie
    @AdrianVrabie 3 месяца назад +1

    That's great for demos and MVPs. In RL you might need to put some specific headers in the calls, which can be path dependent :)

  • @renatmirzoev2167
    @renatmirzoev2167 3 месяца назад +2

    But what if I want to have some custom error handler for cases like Not Found? Or throw an exception?

  • @andytael
    @andytael 2 месяца назад +1

    Maybe a strange question, but doesn't Feign do this already (with Eureka discovery) and it is easy? Or am I missing something. Awesome video!

  • @cviniciusm
    @cviniciusm 3 месяца назад

    I would like to suggest to show us an approach of using Polymorphism to create a common contract for UserRestClient and UserHttpClient because in practice we can use this approach to migrate from another/previous client to these new ones by just injecting the right client.

  • @aravintht.k9276
    @aravintht.k9276 2 месяца назад

    Hi Dan, Great video. Can we handle exceptions thrown from the other service using @ControllerAdvice like we normally do or it has any restrictions on that?

  • @user-qv9rx9qn6u
    @user-qv9rx9qn6u 3 месяца назад +1

    Hi Dan,I would like to ask how to use restclient to retry http requests upon failure, and whether spring-retry can be used.

  • @replicant777
    @replicant777 2 месяца назад

    Hi Dan! Great video! Currently we are on spring boot 2 and use feign (incl some spring integrations like oauth2 or decoders) for creating rest clients to all apis where there are no public java client apis available. Works really great and we love the declarative style. What's the benefit of using this new spring way and will spring feign support be discontinued?

  • @richardbenes9
    @richardbenes9 2 месяца назад

    Nice tutorial, thanks. What about handling non-200 return codes though?

  • @manojdahiya9332
    @manojdahiya9332 3 месяца назад +1

    Hi Dan,
    What do you think about using openfeign

  • @hassanrefaat572
    @hassanrefaat572 3 месяца назад +1

    how about if i want to handle the exception which is maybe happen form the upstream service how could i do that?

  • @RicardoSilvaTripcall
    @RicardoSilvaTripcall 3 месяца назад +1

    Another great tutorial Dan, congrats.
    Silly question, how to maintain the json field order in the response? They are all over the place here :)

    • @JamesStansell
      @JamesStansell 3 месяца назад +2

      It's the http command sorting the fields. It has the --unsorted param to output the result with the fields in the order sent by the application.

    • @RicardoSilvaTripcall
      @RicardoSilvaTripcall 3 месяца назад

      @@JamesStansell Thanks for the reply, --unsorted solved the problem, it was my first time using httpie.

  • @oskar9136
    @oskar9136 3 месяца назад +1

    Hi Dan!

  • @morkhoudia9
    @morkhoudia9 3 месяца назад

    Hi Dan , it will be intéressed a tutorial to use web client calling the use api by iterating and populate to h2 and benching for reactive and a non reactive client...

  • @JamesStansell
    @JamesStansell 3 месяца назад +1

    Thanks Dan! I am really curious to know if the fields of the Geo class populated correctly :)

    • @manojdahiya9332
      @manojdahiya9332 3 месяца назад +1

      @JamesStansell
      No, we need to use json property to set the data in Geo class field

  • @amjedallaya9688
    @amjedallaya9688 2 месяца назад

    Thnx Dan, great video as usual, but can you please try to use dark mode for the videos...
    as a member of dracula developers community I really find it hard to follow the code with all these brightness 😅🤣

  • @user-vr1od8gk5d
    @user-vr1od8gk5d Месяц назад

    how to modify request headers in this case (for example, with some bearer token )?

  • @maksimmuruev423
    @maksimmuruev423 2 месяца назад +1

    Buy what will happen if gateway is not available.. or its return some specific JSON error? We are in network it has no 100% response guarantee.

    • @DanVega
      @DanVega  2 месяца назад

      It's using the RestClient under the hood, you could implement something like retry...

  • @DineshRN751
    @DineshRN751 2 месяца назад

    Using this approach with webclient for a while now, and it kind of gets messy creating beans for each rest. Spring Boot should have some annotation or something to solve this.. Or a custom annotation to do this?

  • @brayanhernandezmora8619
    @brayanhernandezmora8619 2 месяца назад

    Junior question it’s feing client good for doing this ?

  • @subba18
    @subba18 Месяц назад

    How HTTP Interface is different from Spring Cloud OpenFeign?

  • @AleksandarT10
    @AleksandarT10 3 месяца назад

    Hopefully the Spring team adds some kind of annotation on top of the interface so we dont have to do the boiler plate code in the future!

  • @Razpirato
    @Razpirato 3 месяца назад

    It be great if you could add retries.

  • @scitechplusexplorer2484
    @scitechplusexplorer2484 2 месяца назад +1

    Hi Dan! Nice video.
    Can you please make some fresh content related to Spring GraphQL, although u have made it, but still once again, but not just basics, some pretty advanced stuff!!