Hi Brant,

2014-09-23 5:27 GMT+09:00 Brant Knudson <b...@acm.org>:
>> Close to Kilo, it is time to think about what's next for nova API. In
>> Kilo, we
>> will continue develop the important feature micro-version.
>> In previous v2 on v3 propose, it's include some implementations can be
>> used for micro-version.
>> (https://review.openstack.org/#/c/84695/19/specs/juno/v2-on-v3-api.rst)
>> But finally, those implementations was considered too complex.
>> So I'm try to find out more simple implementation and solution for
>> micro-version.
>> I wrote down some ideas as blog post at:
>> http://soulxu.github.io/blog/2014/09/12/one-option-for-nova-api/
>> And for those ideas also already done some POC, you can find out in the
>> blog post.
>> As discussion in the Nova API meeting, we want to bring it up to mail-list
>> to
>> discussion. Hope we can get more idea and option from all developers.
>> We will appreciate for any comment and suggestion!
> Did you consider JSON Home[1] for this? For Juno we've got JSON Home support
> in Keystone for Identity v3 (Zaqar was using it already). We weren't
> planning to use it for microversioning since we weren't planning on doing
> microversioning, but I think JSON Home could be used for this purpose.
> Using JSON Home, you'd have relationships that include the version, then the
> client can check the JSON Home document to see if the server has support for
> the relationship the client wants to use.

Thanks for your advice, that is very useful input for me.
I read both keystone-specs and ietf draft-spec for JSON-Home.
I have a question.

JSON-Home is useful for advertising API URL paths to clients, I guess
but it cannot advertise the supported attributes of a request body.
Is that right?

For example, we can create a user "nobody" by passing the following
request body to Keystone /v2.0/users with POST method:

  '{"user": {"email": null, "password": null, "enabled": true, "name":
"nobody", "tenantId": null}}'

In this case, I hope Keystone can advertise the above
attributes("email", "name", etc).
but JSON-Home doesn't cover it as its scope, I guess.

On current Nova v2 API, we need to add dummy extension when adding new
attributes to the existing request/response body because of
advertising something
changed to clients. I'm glad if we can use more standard way for doing it.

Ken'ichi Ohmichi

OpenStack-dev mailing list

Reply via email to