mastercard-api-client-tutorial icon indicating copy to clipboard operation
mastercard-api-client-tutorial copied to clipboard

using the generated api client in multiple environments

Open latompa opened this issue 2 years ago • 2 comments

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 avatar Jul 21 '22 23:07 latompa

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

gainesm avatar Aug 01 '22 00:08 gainesm

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

oohsai avatar Aug 04 '23 05:08 oohsai