Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

using the generated api client in multiple environments #36

Open
latompa opened this issue Jul 21, 2022 · 2 comments
Open

using the generated api client in multiple environments #36

latompa opened this issue Jul 21, 2022 · 2 comments

Comments

@latompa
Copy link

latompa commented Jul 21, 2022

Heya, I generated a C# client from the openapi spec.

I noticed the generated API client will call paths relative to sandbox
For example TokenizeApi.CreateTokenizeWithHttpInfoAsync

Notice the path ...PostAsync<TokenizeResponseSchema>("/digitization/static/1/0/tokenize",

This works in sandbox,
baseURL https://sandbox.api.mastercard.com/mdes + path /digitization/static/1/0/tokenize

However if I were to use the same client in mtf or prod, the resulting path would include /digitization/static/1/0, which would fail.

According to the api reference, the environment domains are:

prod    https://api.mastercard.com/mdes/digitization/1/0/tokenize
mtf     https://api.mastercard.com/mdes/digitization/mtf/1/0/tokenize
sandbox https://sandbox.api.mastercard.com/mdes/digitization/static/1/0/tokenize

I could hack TokenizeApi (and the other Api classes) to ...PostAsync<TokenizeResponseSchema>("/1/0/tokenize",
and use different baseURLs like

https://api.mastercard.com/mdes/digitization
https://api.mastercard.com/mdes/digitization/mtf 
https://sandbox.api.mastercard.com/mdes/digitization/static

Works, but it's a hack. What am I missing here?

@latompa latompa changed the title using same generated api client in multiple environments using the generated api client in multiple environments Jul 22, 2022
@gainesm
Copy link

gainesm commented Aug 1, 2022

@oohsai
Copy link

oohsai commented Aug 4, 2023

Hey, Thomas. I researched a bit and thought you could create a wrapper around it to include config management, specifying the base url and define a config object that holds the base url for each environment

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants