On 05/29/2012 04:14 PM, Geert Jansen wrote:
On 05/29/2012 12:12 PM, Michael Pasternak wrote:
> there is no point in using this resource programmatically, as it only contains
enumerations
> available in the system for given version and some other metadata,
>
> i.e it used by developers during the coding and it's not real system resource.
I'm not convinced that that is true. For example, applications can use the
"power_managers" and "cpus" elements to prepopulate lists in a user
interface for example.
this is good example indeed, then what about leaving /capabilities as is [1]
only adding single resource retrieval capability [2] to comply with collection/resource
pattern?
[1]
<capabilities>
<version major="3" minor="1">
...
</version>
<version major="3" minor="1">
...
</version>
...
</capabilities>
[2]
/api/capabilities/UUID
<version major="3" minor="1" id=UUID>
...
</version>
>>
>> In your proposal, are you leaving /api/capabilites in place as it is now?
>
> no, please see new modelling below.
>
>> If not how to you enumerate the different versions?
>
> since our resource id is opaque by definition - it doesn't have to be UUID,
> the id for version_capabilities resource can be the version itself, i.e 3.0
> / 3.1 / etc.
>
> (worst case if someone likes UUID more we can convert version str. to UUID)
How do you get a list of which IDs / versions are available?
by listing all <version>s as today only adding id/href to it,
/api/capabilities
<capabilities>
<version major="3" minor="1" id=xxx
href=/api/capabilities/xxx>
...
</version>
<version major="3" minor="1" id=yyy
href=/api/capabilities/yyy>
...
</version>
...
</capabilities>
i.e same as for any resource in api.
Regards,
Geert
--
Michael Pasternak
RedHat, ENG-Virtualization R&D