The API operations described in Chapter 4, API Operations for Client Developers are enabled by a combination of the core Identity API and multiple API extensions. You can read more about extensions, including how to request details about all or specific extensions, at Section 3.5, “Extensions”.
Depending upon which operations you perform, you may see evidence of one or several extensions involved in processing your request. The most obvious evidence is the inclusion of namespaces in XML responses; you can identify the extensions involved in processing a request by examining the namespaces shown in the response.
A namespace is a container within which information has a specific meaning; in a different container, the meaning might be different. Specifying a namespace as the source of a definition is widely used as a way of choosing among multiple available meanings; context and scope are closely-related ideas.
In the example below,
xmlns associates each namespace label (such as ns1)
with a URL (such as http://docs.openstack.org/identity/api/ext/OS-KSADM/v1.0).
Examining the list of namespaces shows that the core Identity API makes it possible to list
credentials and the
RAX-KSKEY extension adds to that by
making it possible to list a specific kind of credentials,
apiKeyCredentials.
Example 3.19. Multiple Namespaces in an XML Response
<?xml version="1.0" encoding="UTF-8" standalone="yes"?> <ns2:credentialsxmlns:ns1="http://docs.openstack.org/identity/api/ext/OS-KSADM/v1.0" xmlns:ns2="http://docs.openstack.org/identity/api/v2.0" xmlns:ns3="http://docs.rackspace.com/identity/api/ext/RAX-KSKEY/v1.0"
xmlns:ns4="http://docs.rackspace.com/identity/api/ext/RAX-KSQA/v1.0" xmlns:ns5="http://docs.openstack.org/common/api/v1.0" xmlns:ns6="http://docs.rackspace.com/identity/api/ext/RAX-KSGRP/v1.0" xmlns:ns7="http://docs.openstack.org/identity/api/ext/OS-KSCATALOG/v1.0" xmlns:ns8="http://www.w3.org/2005/Atom"> <ns3:apiKeyCredentials
username="bobbuilder" apiKey="0f97f489c848438090250d50c7e1eaXZ"/> </ns2:credentials>
| The core Identity API, defined in
|
| The
|
| Support for
|
If you are programmatically parsing responses that describe
multiple namespaces, you should not assume that the
prefixes that identify namespaces are constant. In this
example, ns2 identifies the namespace for the
Identity API and ns3 identifies the namespace
for the RAX-KSKEY extension; under other
circumstances, other prefixes could be associated with
those namespaces.




