zalando/restful-api-guidelines

Add exception to rule 224 for merchant gateway APIs

ePaul opened this issue · 12 comments

ePaul commented

As discussed in the guild meeting on 2020-07-14, the host name api.merchants.zalando.com (and api-sandbox.merchants.zalando.com) is used by several APIs exposed to merchant partners via the merchant gateway.
We want to extend rule 224 to allow this as an exception to the general *.zalandoapis.com rule (for external-partner APIs)

When the same services are used inside the company (not through the gateway), they should use "normal" naming schemes for their API.

Zally should then also be updated to allow those domain names.

@ePaul is api.merchants.zalando.com and api-sandbox.merchants.zalando.com that should be whitelisted when the audience is external-partner

vadeg commented

@rbarilani is it just a host name or you use functional names also? Do you have something like <functional-name>.api.merchants.zalando.com?

@vadeg is just a host name

vadeg commented

We missed the Rule 223 where external-partner API's MUST use functional naming schema which is not true in this case.

@vadeg sorry I don't get completely your comment, what is the action item that you are suggesting?

vadeg commented

@rbarilani Rule 223 says that external-partner must follow functional naming. Since this is no longer true and external-partner audience has an exception by only using two hostnames api.merchants.zalando.com and api-sandbox.merchants.zalando.com which violate rule 223 also my question is should we update rule 223 also by, for example, moving external-partner from must to should?

@vadeg IMHO we should not change that rule to a SHOULD but state the possibility to have exceptions which need to be backed up by business reasons and approved by the api-guild (If I remember correctly that was also the preferred solution discussed during the JF).
When talking with @tkrop I outlined that the main action item will be extending/modifying Zally FunctionalNamingForHostnamesRule to be configurable so we can provide the zalando specific configuration with this exception. WDYT?

vadeg commented

@rbarilani I mean the table inside the rule but not the rule itself. In the table 'external-partner' must follow functional naming schema what is not true in this case. It means it can not be in 'must' but in 'should' imho.

ePaul commented

Can we just add a * to the MUST in the table, and then in a footnote point to the exception? I would prefer to not make it non-MUST.

Hey folks, any update on this, I also favor the suggested change from @ePaul, @tkrop I am also interested on how do we move forward on Zally

vadeg commented

@ePaul

I would prefer to not make it non-MUST.

Why? It seems to me as SHOULD because there are circumstances to ignore it, e.g. using Merchant Gateway.

This word, or the adjective "RECOMMENDED", mean that there
may exist valid reasons in particular circumstances to ignore a
particular item, but the full implications must be understood and
carefully weighed before choosing a different course.

ePaul commented

@tfrauenstein will propose an update to the guidelines.