On Feb 6, 2014, at 5:38 AM, Kenichi Oomichi <[email protected]> wrote:
>
> Hi,
>
> I'd like to propose one idea that autogenerates API sample files from API
> schema for Nova v3 API.
>
> We are working on API validation for v3 API, the works require API schema
> which is defined with JSONSchema for each API. On the other hand, API sample
> files of v3 API are autogenerated from the template files of v3 API under
> nova/tests/integrated/v3/api_samples, as api_samples's README.rst[1].
> The API schema files are similar to the template files, because both represent
> the API parameter structures and each API name.
>
> For example, the template file of keypairs is
> --------------------------------------------------------------------------
> {
> "keypair": {
> "name": "%(keypair_name)s"
> }
> }
> --------------------------------------------------------------------------
>
> and the API schema file is
> --------------------------------------------------------------------------
> create = {
> 'type': 'object',
> 'properties': {
> 'keypair': {
> 'type': 'object',
> 'properties': {
> 'name': {
> 'type': 'string', 'minLength': 1, 'maxLength': 255,
> 'pattern': '^[a-zA-Z0-9 _-]+$'
> },
> 'public_key': {'type': 'string'},
> },
> 'required': ['name'],
> 'additionalProperties': False,
> },
> },
> 'required': ['keypair'],
> 'additionalProperties': False,
> }
> --------------------------------------------------------------------------
>
> When implementing new v3 API, we need to write/review both files and that
> would be hard works. For reducing the workload, I'd like to propose one
> idea[2] that autogenerates API sample files from API schema instead of
> template files. We would not need to write a template file of a request.
+1
The template files were there because we didn’t have a clear schema defined.
It would be awesome to get rid of the templates.
Vish
>
> The XML support is dropped from Nova v3 API, and the decision could make
> this implementation easier. The NOTE is that we still need response template
> files even if implementing this idea, because API schema files of response
> don't exist.
>
> Any comments are welcome.
>
>
> Thanks
> Ken'ichi Ohmichi
>
> ---
> [1]:
> https://github.com/openstack/nova/blob/master/nova/tests/integrated/api_samples/README.rst
> [2]: https://review.openstack.org/#/c/71465/
>
>
> _______________________________________________
> OpenStack-dev mailing list
> [email protected]
> http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev
signature.asc
Description: Message signed with OpenPGP using GPGMail
_______________________________________________ OpenStack-dev mailing list [email protected] http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev
