Difference between revisions of "Neutron/API/WADL"
< Neutron
Line 11: | Line 11: | ||
WADL document scope | WADL document scope | ||
+ | |||
* Core APIs will have a WADL document | * Core APIs will have a WADL document | ||
* All extension APIs will have its own WADL document | * All extension APIs will have its own WADL document | ||
Line 23: | Line 24: | ||
== Use Cases == | == Use Cases == | ||
These are some of the use cases borrowed from the W3 WADL specification. | These are some of the use cases borrowed from the W3 WADL specification. | ||
+ | |||
* Application Modelling and Visualization | * Application Modelling and Visualization | ||
** Support for development of resource modelling tools for resource relationship and choreography analysis and manipulation. | ** Support for development of resource modelling tools for resource relationship and choreography analysis and manipulation. | ||
Line 31: | Line 33: | ||
== Implementation Overview == | == Implementation Overview == | ||
− | Write a python script | + | Write a python script ''quantum/tools/wadl/generate_wadl.py'' |
+ | |||
* Traverse modules in quantum.api and quantum.extension and finds RESOURCE_ATTRIBUTE_MAP definitions in each module. | * Traverse modules in quantum.api and quantum.extension and finds RESOURCE_ATTRIBUTE_MAP definitions in each module. | ||
− | * Automatically generate WADL documents (core.wadl, [extention].wadl, etc.) files in quantum/doc/wadl/ | + | * Automatically generate WADL documents (core.wadl, [extention].wadl, etc.) files in ''quantum/doc/wadl/'' |
** All '''param''' components will be populated according to the RESOURCE_ATTRIBUTE_MAP dictionary | ** All '''param''' components will be populated according to the RESOURCE_ATTRIBUTE_MAP dictionary | ||
Revision as of 05:27, 12 December 2012
Quantum API WADL Specification
Resources
- http://www.w3.org/Submission/wadl/
- http://code.w3.org/unicorn/attachment/wiki/how_to_write_new_contract/css-validator.wadl
Scope
Provide WADL documents for the Quantum APIs.
WADL document scope
- Core APIs will have a WADL document
- All extension APIs will have its own WADL document
- Each WADL document will have one application component
- An application component will have one resources component
- A resources component will have resource components for each resource entity
- eg) network, subnet, port, etc.
- Each resource component will have method components for GET, POST, PUT, and DELETE.
- Each method component will have a request component and WILL NOT HAVE a response component
- A request component will have param components based on the API spec
Use Cases
These are some of the use cases borrowed from the W3 WADL specification.
- Application Modelling and Visualization
- Support for development of resource modelling tools for resource relationship and choreography analysis and manipulation.
- Code Generation
- Automated generation of stub and skeleton code and code for manipulation of resource representations.
- Configuration
- Configuration of client and server using a portable format.
Implementation Overview
Write a python script quantum/tools/wadl/generate_wadl.py
- Traverse modules in quantum.api and quantum.extension and finds RESOURCE_ATTRIBUTE_MAP definitions in each module.
- Automatically generate WADL documents (core.wadl, [extention].wadl, etc.) files in quantum/doc/wadl/
- All param components will be populated according to the RESOURCE_ATTRIBUTE_MAP dictionary
Data Model Changes
N/A
Configuration variables
N/A
API's
N/A
Plugin Interface
N/A
Required Plugin support
N/A
Dependencies
None
CLI Requirements
N/A
Horizon Requirements
N/A
Usage Example
After changing an API or API Extension specification in the source code, the developer will run python quantum/tools/wadl/generate_wadl.py to update the WADL documents in quantum/doc/wadl/
Test Cases
No plans of test cases. However need to check if RESOURCE_ATTRIBUTE_MAP is used consistently across extentions beforehand.