[openstack-dev] Defining API Success in OpenStack APIs (specifically Swift)

Samuel Merritt sam at swiftstack.com
Thu Jun 20 19:59:06 UTC 2013


On 6/20/13 4:21 AM, Sean Dague wrote:
> The following patch review came into Tempest yesterday to stop checking
> for specific 20x codes on a number of Swift API -
> https://review.openstack.org/#/c/33689/
>
> The official documentation for these APIs says the following -
> http://docs.openstack.org/api/openstack-object-storage/1.0/content/retrieve-account-metadata.html
>
>
> "The HTTP return code will be 2xx (between 200 and 299, inclusive) if
> the request succeeds"
>
> This seems kind of broken to me that that's the contract provided. I've
> got a -1 on the patch right now, but I think this is worth raising for
> broader discussion. It seems to go somewhat contrary to
> https://wiki.openstack.org/wiki/APIChangeGuidelines and to the spirit of
> having stable, well defined interfaces.
>
> So I guess I open up the question of is it ok for OpenStack core
> projects to not commit to success codes for API calls? If so, we'll let
> the test change into Tempest. If not, we probably need to call that out
> on API standards.

I think that's really two separate questions. There's the question of 
what new APIs should be, but there's also the question of what existing 
APIs are. IMHO, it's entirely reasonable to have guidelines or rules for 
new APIs, but to go back and retroactively impose new standards on old 
APIs is too much, especially when it's done without even consulting that 
project's developers.

Remember, Swift predates not only the OpenStack API Change Guidelines 
mentioned above, but it also predates OpenStack, and it's only ever had 
one API version. If an old API isn't up to new standards, that's just 
something to grandfather in.



More information about the OpenStack-dev mailing list