Conversation
1bae681 to
3e8b983
Compare
3e8b983 to
e7611af
Compare
Also update some failure tests to account for API version negotiation.
37a002e to
5b6c0fe
Compare
|
this has been stuck for a while, but i have another weird idea. i've written this down in anger, so please ask me to elaborate if you're getting to this. the simple casewe provide a new servant client function generator V16 is any supported version, V19 is the most recent supported for all supported versions Vx, we test that Vx of the route has the but what if types change?assume that starting in V19, the request body contains an different then, where we previously called to provide type safety the list of suppored versions needs to be what does this mean?the developer doesn't have to do anything for any clients whose route if the version changes, the developer has to generate the client |
|
other alternatives:
|
|
This is not going to be very constructive feedback, but I'm afraid this approach would still result in a lot of boilerplate and manual wiring. We should probably go back to the drawing board and specify more precisely what we are looking for here in terms of type safety. Because if we decide we need to rely on tests anyway to have any meaningful guarantee that all this versioning system is actually ensuring some form of compatibility (and I think it's very likely), then we might as well scrap the whole typed mess and implement something at the Wai level instead. |
Yes, we could make the version number dynamic, but I think the outcome would be worse:
IMO the first point alone justifies all the typed mess. |
|
Closing in favour of #2297. |
This is the first step towards implementing the API versioning scheme outlined in https://github.com/wireapp/wire-server/blob/develop/docs/developer/api-versioning.md for the federation API.
Checklist
changelog.d.