For some of the endpoints (tags, tag aliases) in the API documentation it has the following message: "If your query succeeds but produces no results, you will receive instead the following special value"
When I hit the endpoints to get tags or tag aliases, I predictably get a JSON array containing the elements of the requested page, but as soon as I request a page that has no elements, I get the "special value", which is NOT a JSON array, yet still returns with status 200. We go from getting [{...},{...},...] to { "tags":[] }.
Aside from complicating implementations of clients for this API, what is the rationale for this behavior? Is there something wrong with the obvious expected behavior of simply returning an empty array?
I can't speak for other developers, but from my perspective I expect not to see the structure of the JSON to change so dramatically between valid requests to the same endpoint that return successfully with status 200. If it is truly such a "special" case, I would argue that it should return a response with status 400 and an error message about the page being out of bounds. That said, I don't think this is a special case and I think it should just return [] with status 200.