microsoft / kiota

OpenAPI based HTTP Client code generator
https://aka.ms/kiota/docs
MIT License
2.93k stars 205 forks source link

Documentation for Handler middleware (all languages) #5316

Open esbenbach opened 1 month ago

esbenbach commented 1 month ago

Is your feature request related to a problem? Please describe the problem.

I am trying to figure out how to customize the behaviour of the RetryHandler and also figuring out if the "TelemetryHandler" does anything at all, aside from providing a random hook into the request message being sent.

While I can browse the code, and "reverse engineer" an understanding, it would be really awesome with documentation describing what the various handlers are for, how they may be used and configured/customized.

As it stands, that seems to be almost impossible

Client library/SDK language

Csharp

Describe the solution you'd like

More documentation on the various existing/out-of-the-box middleware handlers :)

Additional context

No response

baywet commented 1 month ago

Hi @esbenbach , Thank you for using kiota and for reaching out.

I was curious, did you find this page? https://learn.microsoft.com/en-us/openapi/kiota/middleware

esbenbach commented 1 month ago

Yes. It talks about adding new middleware. It mentions nothing about the bundled middleware.

On Wed, 4 Sept 2024, 16:51 Vincent Biret, @.***> wrote:

Hi @esbenbach https://github.com/esbenbach , Thank you for using kiota and for reaching out.

I was curious, did you find this page? https://learn.microsoft.com/en-us/openapi/kiota/middleware

— Reply to this email directly, view it on GitHub https://github.com/microsoft/kiota/issues/5316#issuecomment-2329279656, or unsubscribe https://github.com/notifications/unsubscribe-auth/AAKQP7SXBQDT64RPL2IM5LLZU4M5LAVCNFSM6AAAAABNTROR7GVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMZDGMRZGI3TSNRVGY . You are receiving this because you were mentioned.Message ID: @.***>

baywet commented 1 month ago

Thank you for the additional information.

So, what you'd expect to be added here would be:

Those are currently listed in our design repo but this repo is more reserved for internal design decisions and so our team has a reference when implementing functionality.

esbenbach commented 1 month ago

Something like that would be nice, yes.

But lets say the retryhandler is configurable, an example of how to configure it would probably also be helpful.

On Thu, 5 Sept 2024, 17:56 Vincent Biret, @.***> wrote:

Thank you for the additional information.

So, what you'd expect to be added here would be:

  • a list of the available middleware handler.
  • a list of the handlers added by default to any client.
  • anything else?

Those are currently listed in our design repo https://github.com/microsoftgraph/msgraph-sdk-design/ but this repo is more reserved for internal design decisions and so our team has a reference when implementing functionality.

— Reply to this email directly, view it on GitHub https://github.com/microsoft/kiota/issues/5316#issuecomment-2332103862, or unsubscribe https://github.com/notifications/unsubscribe-auth/AAKQP7RZ2O3P234E4DQECVTZVB5MJAVCNFSM6AAAAABNTROR7GVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMZDGMZSGEYDGOBWGI . You are receiving this because you were mentioned.Message ID: @.***>

baywet commented 1 month ago

Thank you for the additional information. Follow up question, did you find this page ? would that answer the "how do customize the client handler?" part of the documentation gap for you?

esbenbach commented 1 month ago

No i did not find a totally unrelated page about the MS Graph SDK. While it seems to be generated with Kiota, or at least uses the same principles, it still has a lot of other stuff, like the GraphClientFactory.

A similar example using a Kiota generated client would make sense in terms of customizations yes. Refering to the Graph SDK for an example would not (because then again I have to mentally exclude/ignore the parts that are graph sdk specific).

baywet commented 1 month ago

Thank you for the additional information. While my question might have sounded naïve from the outside (yes those are two separate sections), better understanding the browsing patterns helps us produce better documentation.

Your feedback has helped scope this request a lot!

Is this something you'd like to submit a pull request for provided some guidance?