It is currently undefined what is the expected result when using duplicate query parameters, e.g., GET /submodel?level=core&level=deep.
I see the following possible solutions
- use first occurance
- use last occurance
- return
400 Bad Request
- leave it undefined in the specification but add a section that we are aware of the issue and it is strongly discouraged to make requests with duplicates query parameters as the result might not be deterministic. The reasoning behind this is that many HTTP libraries across different programming languages actually resolve this differently sometimes even hiding from the application that they remove duplicate query parameters.
We discussed this in the IDTA Test Engine Developer Group and propose to use the last solution and leave this undefined and also do not test it.