Jump to: navigation, search

Swift/API

< Swift
Revision as of 18:30, 13 May 2013 by Notmyname (talk | contribs) (Features)

Swift API Definition

Goal: To define the v1.0 API spec for Swift.

We should try to not exclude existing clusters with a v1 definition. Later, after the v1 API is set, then we can discuss changes for v1.1 or v2.

Current v1 API docs

http://docs.openstack.org/api/openstack-object-storage/1.0/content/


Outstanding TODOs

  1. What do we do about middleware? (see below)
  2. Implement API versioning and discoverability (see http://lists.openstack.org/pipermail/openstack-dev/2013-May/008436.html)
  3. Update docs to reflect API changes

Middleware

Middleware In v1 API Notes
account_quotas no [2]
acl - [1]
bulk no [2]
catch_errors - [1]
cname_lookup no [2]
container_quotas no [2]
crossdomain no [2]
domain_remap no [2]
formpost no [2]
healthcheck yes required
keystoneauth yes openstack
list_endpoints no [2]
memcache - [1]
name_check no [2]
proxy_logging - [1]
ratelimit no [2]
recon - [1]
slo no [2]
staticweb no [2]
tempauth - For testing
tempurl no [2] [3]

notes

[1] Not part of the external API, therefore NA

[2] Not widely deployed

[3] torgomatic wants this in core since it's been around forever and it's just so damn useful for so many things

Features

  • ACLs are specifically not part of the 1.0 spec
  • Auth is not defined in 1.0 beyond "X-Auth-Token is given in each request to authorize the request if the resource is not available publicly"
  • "warts" like etags and the differences in setting metadata are defined as they exist today in the code (ie existing clients can't break)
  • GET PUT POST DELETE COPY OPTIONS are all supported
  • concurrent requests to a resource are allowed, but conflict resolution is done by last-write-wins
  • single and multi-range requests are supported
  • large objects (dynamic and static?) are supported