A specific parameter name can be repeated in the query string. In this case, there are multiple
values for the same parameter.
The last part of the URI is the fragment . It is delimited by a “#” character. The fragment is
usually used to point to a certain place in the document you are querying.
Not all characters are allowed within a URI string. Some characters must be encoded using
the following rules. The characters a-z, A-Z, 0-9, ., -, *, and _ remain the same. The space
character is converted to +. The other characters are first converted into a sequence of bytes
using a specific encoding scheme. Next, a two-digit hexadecimal number prefixed by % rep-
resents each byte.
Using a unique URI to identify each of your services makes each of your resources linkable.
Service references can be embedded in documents or even email messages. For instance,
consider the situation where somebody calls your company's help desk with a problem re-
lated to your SOA application. A link could represent the exact problem the user is having.
Customer support can email the link to a developer who can fix the problem. The developer
can reproduce the problem by clicking on the link. Furthermore, the data that services pub-
lish can also be composed into larger data streams fairly easily:
< order id = "111" >
< customer > http: //customers.myintranet.com/customers/32133 </ customer >
< order - entries >
< order - entry >
< quantity > 5 </ quantity >
< product > http: //products.myintranet.com/products/111 </ product >
In this example, an XML document describes an ecommerce order entry. We can reference
data provided by different divisions in a company. From this reference, we can not only ob-
tain information about the linked customer and products that were bought, but we also have
the identifier of the service this data comes from. We know exactly where we can further in-
teract and manipulate this data if we so desired.
The Uniform, Constrained Interface
The REST principle of a constrained interface is perhaps the hardest pill for an experienced
CORBA or SOAP developer to swallow. The idea behind it is that you stick to the finite set
of operations of the application protocol you're distributing your services upon. This means
that you don't have an “action” parameter in your URI and use only the methods of HTTP
for your web services. HTTP has a small, fixed set of operational methods. Each method has
a specific purpose and meaning. Let's review them: