erasmus-without-paper / ewp-specs-api-factsheet

MIT License
1 stars 1 forks source link

Why is empty respsone valid? #4

Open j-be opened 2 years ago

j-be commented 2 years ago

factsheet is optional (see here, i.e. min-occurs="0"), i.e. an empty <factsheet></factsheet> in the response does not break spec.

Additionally, the xs:documentation tag on that very element does not use the MUST / SHOULD vocabulary as described here.

Hence, all of this is currently optional as far as the XSD is concerned. Is this intended or an error in the spec?

MartaJuzepczuk commented 2 years ago

Actually and empty <factsheet></factsheet> element breaks spec. An empty <factsheet-response></factsheet-response> does not. Empty response is returned if all hei_id values in the request are unknown (see here). This is the way we also do in other APIs.

j-be commented 2 years ago

Right, sorry, empty <factsheet-response> is what I meant. I based my statement on the code, where the factsheet list is empty. Of course, in light of the XSD that makes little sense.

I also completely missed the "ignoring unknown HEIs" - we currently implemented a 400 - Bad request for that, as it is obvious from institutions-covered that we only support ourselves. So it is a "Bad Request" (i.e. clearly an error on the client), not an "everything is fine" scenario.

May I ask what the reasoning behind simply ignoring obviously invalid parameters is?

As for the topic at hand - might I propose to rephrase to:

Servers MUST produce one such element for each `hei_id` passed in the Mobility Factsheet API call which is supported by this server.