I'm beginning to build an Atom server based on Abdera and I am unclear
on what I should do for the URLs. It seems to be an important aspect of
designing creating the server but the tutorials do not go into the
requirements and ramifications.
I have read the Atom RFCs. I don't have a problem with the service
document or an individual entry. The Server Implementation Guide
(excerpt shown below) shows in line 34, for example, a number of
possibilities following collection that I did not see explained.
Can provide any general guidance for setting up URLs or point me to
something that provides some additional information? I am particularly
interested in:
1. What is required to be RFC-compliant or to conform to current practice.
2. What URLs Abdera will handle automatically and what I must implement.
3. Clarification distinguishing the functions of TargetResolver and
TargetBuilder.
Thanks!
Paul
22 setTargetResolver(
23 new RegexTargetResolver()
24 .setPattern("/atom(\\?[^#]*)?", TargetType.TYPE_SERVICE)
25 .setPattern("/atom/([^/#?]+);categories",
TargetType.TYPE_CATEGORIES, "collection")
26 .setPattern("/atom/([^/#?;]+)(\\?[^#]*)?",
TargetType.TYPE_COLLECTION, "collection")
27 .setPattern("/atom/([^/#?]+)/([^/#?]+)(\\?[^#]*)?",
TargetType.TYPE_ENTRY, "collection","entry")
28 .setPattern("/search",
OpenSearchFilter.TYPE_OPENSEARCH_DESCRIPTION)
29 );
30
31 setTargetBuilder(
32 new TemplateTargetBuilder()
33 .setTemplate(TargetType.TYPE_SERVICE, "{target_base}/atom")
34 .setTemplate(TargetType.TYPE_COLLECTION,
"{target_base}/atom/{collection}{-opt|?|q,c,s,p,l,i,o}{-join|&|q,c,s,p,l,i,o}")
35 .setTemplate(TargetType.TYPE_CATEGORIES,
"{target_base}/atom/{collection};categories")
36 .setTemplate(TargetType.TYPE_ENTRY,
"{target_base}/atom/{collection}/{entry}")
37 .setTemplate(OpenSearchFilter.TYPE_OPENSEARCH_DESCRIPTION,
"{target_base}/search")
38 );