Thalia Business Layer APIs
There are two sets of Thalia back-end APIs. They are both implemented using the java servlet technology. The first set is the more traditional. It uses the HTTP Get and Post method. Inputs are passed to the API through HTTP request parameters and the APIs return the results in XML format. The second is the new REST style API. It utilizes four of the HTTP methods: Get for retrieval, Post for create, Put for update, and Delete for deletion. Inputs are passed in XML format in the HTTP request body and the API return the results in XML format. We are looking to fully utilize the REST style API in our front end and phase out the traditional set of APIs.
Thalia REST API
Because most of the browsers and other web tools still don't support Put and Delete, our APIs will take an optional parameter method which can be delete or put to bypass the client limitations.
In a RESTful design, the objects and their functions in an application are divided as resources and are identified as URIs which is uniquely addressable using the http syntax and self-descriptive. It separates the server from its client and can handle request from any client that uses the resource syntax.
The resources we identified in our application are album, albums, authz(authorization), authzs, bulk (for bulk operations), category, categories (for tagging), item, and items, map, maps (for collection and slideshow), user, and users. Each URI supports one or more of the four HTTP methods.
Our REST API uses https for client authentication.
album:
Method: GET
URI: baseuri/album/[album id] or baseuri/album/[album id]/items
Description: retrieve information about the album identified by the album id. A status error is returned if the album id is not present, or the user is not authorized to view this album. If the items option is specified in the uri, the items inside the album are also displayed.
Sample output:
<album>
<library-id>thalia</library-id>
<id>thalia:public</id>
<createDate>2006-10-25T14:24:45.372Z</createDate>
<lastModifyDate>2007-01-31T13:37:11.625Z</lastModifyDate>
<title>public</title>
<description>default album</description>
<creator>ADMINTHALIA</creator>
<date>2007-01-31T13:36:23.437Z</date>
<contentModel>THALIA:ALBUM</contentModel>
<state>A</state>
<albumId>admin:ALBUM-ROOT</albumId>
</album>
Method: DELETE
URI: baseuri/album/[album id]
Descritpion: delete the album identified by the album id. A status error is returned if the album id is not present, or the user is not authorized to delete this album.
Sample output:
<status result="true">
</status>
Method: POST
Uri: baseuri/album
Description: create an album. A status error is returned if the user is not authorized to create an album. After the album is created, an authorization is created which gives the user admin rights on the album.
Sample input:
<album>
<title>test album</title>
<description>a test album</description>
</album>
Sample output:
<album>
<library-id>Thalia</library-id>
<id>thalia:E2244BE1-355B-FB39-0A83-1E6E31995108</id>
<createDate>2007-03-18T01:46:48.710Z</createDate>
<lastModifyDate>2007-03-18T01:46:48.710Z</lastModifyDate>
<title>test album</title>
<description>a test album</description>
<creator>dongq</creator>
<contentModel>THALIA:ALBUM</contentModel>
<albumId>admin:ALBUM-ROOT</albumId>
</album>
Method: PUT
Uri: base/uri/album/[album id]
Description: modified an album. A status error is returned if album id is not present or if the user is not authorized to modify an album. An id mismatch error will also occur if the id in the uri doesn't match the id in the xml text.
Sample input:
<album>
<id>thalia:E2244BE1-355B-FB39-0A83-1E6E31995108</id>
<title>test album modified</title>
<description>a test album modified</description>
</album>
Sample output:
<status result="true">
</status>
albums:
Method: GET
Uri: baseuri/albums or baseuri/albums/all
Description: retrieves information on all albums the user can see. If the all option is specified. Items inside each album will also be displayed.
Sample output:
<album-list>
<album>
<library-id>thalia</library-id>
<id>thalia:public</id>
<createDate>2006-10-25T14:24:45.372Z</createDate>
<lastModifyDate>2007-01-31T13:37:11.625Z</lastModifyDate>
<title>public</title>
<description>default album</description>
<creator>ADMINTHALIA</creator>
<date>2007-01-31T13:36:23.437Z</date>
<contentModel>THALIA:ALBUM</contentModel>
<state>A</state>
<albumId>admin:ALBUM-ROOT</albumId>
</album>
<album>
<library-id>Thalia</library-id>
<id>thalia:E2244BE1-355B-FB39-0A83-1E6E31995108</id>
<createDate>2007-03-18T01:46:48.710Z</createDate>
<lastModifyDate>2007-03-18T01:46:48.710Z</lastModifyDate>
<title>test album</title>
<description>a test album</description>
<creator>dongq</creator>
<contentModel>THALIA:ALBUM</contentModel>
<albumId>admin:ALBUM-ROOT</albumId>
</album>
</album-list>
authz:
Method: GET
Uri: baseuri/authz/function/[function name]/qualifier/[qualifier id]
eg: https://thalia.mit.edu/thaliaime/authz/function/admin/qualifier/thalia:06AB49A3-3DDE-B92C-056D-F87533A2600C
Description: retrieves if the user has the authorization to do function X with the qualifier Y. Function names are ADMIN, READER, and WRITER.
Sample output:
<status result="true" />
Method: DELETE
Uri: baseuri/authz/[authz id]
Description: deletes the authorization identified by the authorization id. A status error will return if the authz id is not present, or if the user is not authorized to delete the authorization, or if the authz does not exist.
Sample output:
<status result="true" />
Method: POST
Uri: baseuri/authz
Description: creates an authorization. A status error will return if the input is invalid, or if the user is not authorized to create the authorization.
Sample input:
<authz user="robin" role="ADMIN" album="thalia:06AB49A3-3DDE-B92C-056D-F87533A2600C" id="authz:6027B772-00B6-21AD-D0ED-A8299336F2E4" />
Sample output:
<status result="true" />
authzs:
Method: GET
Uri: baseuri/authzs/
with several options: user/userid
qualifier/qualifier id
explicit
functions
all
Description: Retrieves authorizations. If functions option is present, it displays all the available functions. If all option is present, it retrieves all authorizations in the system. Otherwise, it retrieves all authorizations possessed by the current user. The user option specifies a user other than the current user. Qualifier option filters the result based on qualifier.
Sample output:
<authorization_list>
<authz user="GUEST" role="READER" album="thalia:public" id="authz:1B868D59-526F-5FF3-F58C-B6E513FFADDF" />
<authz user="colodzin" role="READER" album="thalia:public" id="null" />
<authz user="colodzin" role="WRITER" album="thalia:public" id="authz:535424DE-44A3-AD54-B417-4150693B2C0A" />
<authz user="iannuzzo" role="READER" album="thalia:public" id="null" />
<authz user="iannuzzo" role="WRITER" album="thalia:public" id="authz:7674ECA4-CBA5-5A0E-740F-00B9C49BCF8D" />
</authorization_list>
bulk:
Method: DELETE
Uri: baseuri/bulk
Description: bulk deletes items
Sample input:
<item-list>
<item>
<id>thalia:F78B68F0-D384-3043-AE3B-1812D3885FA6</id>
</item>
<item>
<id>thalia:C5E662D1-6128-FC37-A7B5-36B67E0E4F1E</id>
</item>
</item-list>
Sample output:
<audit>
<summary>
<processed>2</processed>
<succeed>2</succeed>
<failed>0</failed>
</summary>
<detail>
<item>
<id>thalia:F78B68F0-D384-3043-AE3B-1812D3885FA6</id>
<status>successfully deleted</status>
</item>
<item>
<id>thalia:C5E662D1-6128-FC37-A7B5-36B67E0E4F1E</id>
<status>successfully deleted</status>
</item>
</detail>
</audit>
Method: POST
Uri: baseuri/bulk/copy/[target id] or baseuri/bulk/move/[target id]
Description: moves or copies items.
Sample input:
<item-list>
<item>
<id>thalia:16165EF9-AE76-6A43-CAA8-992ED61C68EF</id>
</item>
<item>
<id>thalia:4241D863-A529-2637-E8C6-FF4052749490</id>
</item>
</item-list>
Sample output:
<audit>
<summary>
<processed>2</processed>
<succeed>2</succeed>
<failed>0</failed>
</summary>
<detail>
<item>
<id>thalia:16165EF9-AE76-6A43-CAA8-992ED61C68EF </id>
<status>successfully moved to album thalia:819576B9-E6EF-8125-4A6B-7AE02EDABD66</status>
</item>
<item>
<id>thalia: 4241D863-A529-2637-E8C6-FF4052749490</id>
<status>successfully moved to album thalia:819576B9-E6EF-8125-4A6B-7AE02EDABD66</status>
</item>
</detail>
</audit>
categories:
Method: GET
Uri: baseuri/categories
Description: retrieves all the tags in the system
Sample output:
<taglist>
<category name="ANIMAL" id="category:900EDC30-67A5-9090-6C89-FE651D05290E">
<tag name="cat" id="tag:043587C9-9949-83AF-7169-BA1B7D745A13" />
<tag name="dog" id="tag:764256D4-AF80-B011-8190-A3C8F0A950B0" />
<tag name="horse" id="tag:53392AA3-A926-BFDD-6629-03F045A44762" />
</category>
<category name="ARCHITECTURE" id="category:5594E6F4-4C27-E803-962C-ACDBE91F8A52" />
<category name="ART" id="category:7392C315-9BF0-1AE1-8164-8A961C6ABCB5">
<tag name="Modigliani" id="tag:EB5E1889-2C4F-D2D5-4319-EC4917DD5D17" />
<tag name="painters" id="tag:968D7C7C-6A27-FF6D-D336-2D7AA7DA7A03" />
<tag name="painting" id="tag:44D99B5C-A07E-1123-78A3-7B6A5BF791F4" />
<tag name="photography" id="tag:7A3CE459-1245-C7D2-A672-5DC1A427346B" />
</category>
</taglist>
category:
Method: GET
Uri: baseuri/category/[category id]
Description: Retrieves the category and tag information identified by the category id. A status error will return if the category id is not present.
Sample output:
<taglist>
<category name="animal" id=" category:596CFDB1-81D8-0213-A385-BB316E8A11E4">
<tag name="cat" id="tag:BE42D3CF-15A1-A36D-65FA-7D4B7BA769DE" />
<tag name="rabbit" id="tag:D6DF2DEC-9C58-B24B-DF26-06695DC081F0" />
</category>
</taglist>
Method: POST
Uri: baseuri/category or baseuri/category/[category id]/tag/
Description: Creates a category or creates a tag under the category identified by category id. A status error will return if the user does not have rights to create categories.
Sample Input:
<category name="test"/>
Sample output:
<status result="true"/>
</status>
Method: DELETE
Uri: baseuri/category/[category id] or baseuri/category/[category id]/tag/[tag name]
Description: Delete a category identified by the category id or delete a tag under a category.
Sample output:
<status result="true"/>
</status>
item:
Method: GET
Uri: baseuri/item/[item id]
Description: Retrieve information on the item identified by the item id.
Sample output:
<item>
<library-id>thalia</library-id>
<id>thalia:231ED3C8-205E-1A87-FA70-8040382C275B</id>
<createDate>2007-01-11T17:58:43.343Z</createDate>
<lastModifyDate>2007-02-05T15:25:08.496Z</lastModifyDate>
<title>Nisu</title>
<description />
<date>12/2006</date>
<subject>dog | bella</subject>
<format>undefined</format>
<rights>undefined</rights>
<contributor>Deanna Aho</contributor>
<source />
<contentModel>THALIA:IMAGE</contentModel>
<state>A</state>
<albumId>thalia:public</albumId>
<thumbnail>http://thalia.mit.edu:8086/fedora/get/thalia:231ED3C8-205E-1A87-FA70-8040382C275B/THUMBNAIL</thumbnail>
<medium>http://thalia.mit.edu:8086/fedora/get/thalia:231ED3C8-205E-1A87-FA70-8040382C275B/MEDIUM</medium>
<large>http://thalia.mit.edu:8086/fedora/get/thalia:231ED3C8-205E-1A87-FA70-8040382C275B/LARGE</large>
<master>http://thalia.mit.edu:8086/fedora/get/thalia:231ED3C8-205E-1A87-FA70-8040382C275B/MASTER</master>
</item>
Method: PUT
Uri: baseuri/item/[item id]
Description: Modified the item identified by the item id. A status error is returned if the item id is not present, or if the id doesn't match what is in the xml text, or if the user is not authorized to modified the item.
Sample input:
<item>
<library-id>thalia</library-id>
<id>thalia:231ED3C8-205E-1A87-FA70-8040382C275B</id>
<createDate>2007-01-11T17:58:43.343Z</createDate>
<lastModifyDate>2007-02-05T15:25:08.496Z</lastModifyDate>
<title>Nisu</title>
<description>Nisu</description>
<date>12/2006</date>
<subject>dog</subject>
<format>undefined</format>
<rights>undefined</rights>
<contributor>Deanna Aho</contributor>
<source>personal photograph</source>
<contentModel>THALIA:IMAGE</contentModel>
<state>A</state>
<albumId>thalia:public</albumId>
<thumbnail>http://thalia.mit.edu:8086/fedora/get/thalia:231ED3C8-205E-1A87-FA70-8040382C275B/THUMBNAIL</thumbnail>
<medium>http://thalia.mit.edu:8086/fedora/get/thalia:231ED3C8-205E-1A87-FA70-8040382C275B/MEDIUM</medium>
<large>http://thalia.mit.edu:8086/fedora/get/thalia:231ED3C8-205E-1A87-FA70-8040382C275B/LARGE</large>
<master>http://thalia.mit.edu:8086/fedora/get/thalia:231ED3C8-205E-1A87-FA70-8040382C275B/MASTER</master>
</item>
Sample output:
<status result="true">
</status>
Method: POST
Uri: baseuri/item or baseuri/item/[item id]/move/[target id] or baseuri/item/[item id]/copy/[target id]
Description: Upload an item, or move an item to another album, or copy an item to another album.
Sample input:
<item>
<albumId>thalia:public</albumId>
<title>deer</title>
<description>test item upload</description>
</item>
Sample output:
<item>
<library-id>library-id</library-id>
<id>thalia:DFFE0FF2-7DA1-09CD-F21B-871DFA5CEF75</id>
<title>deer</title>
<description>test item upload</description>
<contentModel>THALIA:IMAGE</contentModel>
<albumId>thalia:public</albumId>
<thumbnail>http://thalia..mit.edu/thalia-store/1174273278732_P1000331_sm.jpg</thumbnail>
<medium>http://thalia.mit.edu/thalia-store/1174273278732_P1000331_sm.jpg</medium>
<large>http://thalia.mit.edu/thalia-store/1174273278732_P1000331.JPG</large>
<master>http://thalia.mit.edu/thalia-store/1174273278732_P1000331.JPG</master>
</item>
Method: DELETE
Uri: baseuri/item/[item id]
Description: Delete the item identified by item id. A status error will return if item id is not present, or the item does not exist, or if the user does not have rights to delete the item.
Sample output:
<status result="true">
</status>
items:
Method: GET
Uri: baseuri/items/album/[album id] or baseuri/items/tag/[tag id] or baseuril/items/search
Description: Get all the items in the album identified by album id or get all the items with the tag identified by tag id, or search for items based on the search criteria.
Sample output:
<result_set>
<library-list>
<library-id>Thalia</library-id>
</library-list>
<query>dog</query>
<item>
<library-id>thalia</library-id>
<id>thalia:231ED3C8-205E-1A87-FA70-8040382C275B</id>
<createDate>2007-01-11T17:58:43.343Z</createDate>
<lastModifyDate>2007-02-05T15:25:08.496Z</lastModifyDate>
<title>Nisu</title>
<description />
<date>12/2006</date>
<subject>dog</subject>
<format>undefined</format>
<rights>undefined</rights>
<contributor>Deanna Aho</contributor>
<source />
<contentModel>THALIA:IMAGE</contentModel>
<state>A</state>
<albumId>thalia:public</albumId>
<thumbnail>http://thalia.mit.edu:8086/fedora/get/thalia:231ED3C8-205E-1A87-FA70-8040382C275B/THUMBNAIL</thumbnail>
<medium>http://thalia.mit.edu:8086/fedora/get/thalia:231ED3C8-205E-1A87-FA70-8040382C275B/MEDIUM</medium>
<large>http://thalia.mit.edu:8086/fedora/get/thalia:231ED3C8-205E-1A87-FA70-8040382C275B/LARGE</large>
<master>http://thalia.mit.edu:8086/fedora/get/thalia:231ED3C8-205E-1A87-FA70-8040382C275B/MASTER</master>
</item>
<count>1</count>
</result_set>
map:
Method: GET
Uri: baseuri/map/[map id]
Description: retrieves information about the map identified by map id. A status error will be returned if map id is not present, the user is not authorized to view the map, or if the map id doesn't exist.
Sample output:
<DisplayMap>
<library-id>thalia</library-id>
<id>thalia:FEE71D5F-26F8-BCF8-925A-D718E81E13C3</id>
<createDate>2007-03-18T03:28:30.805Z</createDate>
<lastModifyDate>2007-03-18T03:28:30.805Z</lastModifyDate>
<title>qing map</title>
<description>qing's test map</description>
<creator>dongq</creator>
<contentModel>THALIA:MAP:COLLECTIONMAP</contentModel>
<state>A</state>
<map>
<numperscreen>25</numperscreen>
<defaultDisplay>thumbnail</defaultDisplay>
<page>
<item>
<id>thalia:93E30ABD-4F35-0EA8-BA3C-87A9F1853ECB</id>
<caption>Picture of Thistles</caption>
<image>http://thalia.mit.edu:8086/fedora/get/thalia:1506255F-D68A-455E-B727-32536CFA758D/THUMBNAIL</image>
</item>
<item>
<id>thalia:3A6B1C3A-390C-02DD-1D9C-C810F88F79CE</id>
<caption>Another flower</caption>
<image>http://thalia.mit.edu:8086/fedora/get/thalia:3A6B1C3A-390C-02DD-1D9C-C810F88F79CE/THUMBNAIL</image>
</item>
</page>
</map>
</DisplayMap>
Method: POST
Uri: baseuri/map
Description: Creates a map. A status error will return if the user doesn't have authorization to create maps. After a map is created, an authorization will be created to give the user admin rights to the map. It will return the xml text for the newly created map.
Sample input:
<DisplayMap>
<title>qing map</title>
<description>qing's test map</description>
<contentModel>THALIA:MAP:COLLECTIONMAP</contentModel>
<map>
<numperscreen>25</numperscreen>
<defaultDisplay>thumbnail</defaultDisplay>
<page>
<item ordinal="1">
<id>thalia:93E30ABD-4F35-0EA8-BA3C-87A9F1853ECB</id>
<caption>Picture of Thistles</caption>
<image>http://thalia.mit.edu:8086/fedora/get/thalia:1506255F-D68A-455E-B727-32536CFA758D/THUMBNAIL</image>
</item>
<item ordinal="2">
<id>thalia:3A6B1C3A-390C-02DD-1D9C-C810F88F79CE</id>
<caption>Another flower</caption>
<image>http://thalia.mit.edu:8086/fedora/get/thalia:3A6B1C3A-390C-02DD-1D9C-C810F88F79CE/THUMBNAIL</image>
</item>
</page>
</map>
</DisplayMap>
Sample output:
<DisplayMap>
<library-id>thalia</library-id>
<id>thalia:FEE71D5F-26F8-BCF8-925A-D718E81E13C3</id>
<createDate>2007-03-18T03:28:30.805Z</createDate>
<lastModifyDate>2007-03-18T03:28:30.805Z</lastModifyDate>
<title>qing map</title>
<description>qing's test map</description>
<creator>dongq</creator>
<contentModel>THALIA:MAP:COLLECTIONMAP</contentModel>
<state>A</state>
<map>
<numperscreen>25</numperscreen>
<defaultDisplay>thumbnail</defaultDisplay>
<page>
<item>
<id>thalia:93E30ABD-4F35-0EA8-BA3C-87A9F1853ECB</id>
<caption>Picture of Thistles</caption>
<image>http://thalia.mit.edu:8086/fedora/get/thalia:1506255F-D68A-455E-B727-32536CFA758D/THUMBNAIL</image>
</item>
<item>
<id>thalia:3A6B1C3A-390C-02DD-1D9C-C810F88F79CE</id>
<caption>Another flower</caption>
<image>http://thalia.mit.edu:8086/fedora/get/thalia:3A6B1C3A-390C-02DD-1D9C-C810F88F79CE/THUMBNAIL</image>
</item>
</page>
</map>
</DisplayMap>
Method: DELETE
Uri: baseuri/map/[map id]
Description: Deletes the map identified by map id. A status error will return if map id is not present, or if the user is not authorized to modified the map.
Sample output:
<status result="true" />
Method: PUT
Uri: baseuri/map/[map id]
Description: Modifies the map identified by map id. A status error will return if map id is not present, or if the user is not authorized to modify the map.
Sample input:
<DisplayMap>
<library-id>thalia</library-id>
<id>thalia:FEE71D5F-26F8-BCF8-925A-D718E81E13C3</id>
<createDate>2007-03-18T03:28:30.805Z</createDate>
<lastModifyDate>2007-03-18T03:28:30.805Z</lastModifyDate>
<title>qing map modified</title>
<description>qing's test map</description>
<creator>dongq</creator>
<contentModel>THALIA:MAP:COLLECTIONMAP</contentModel>
<state>A</state>
<map>
<numperscreen>5</numperscreen>
<defaultDisplay>thumbnail</defaultDisplay>
<page>
<item>
<id>thalia:93E30ABD-4F35-0EA8-BA3C-87A9F1853ECB</id>
<caption>Picture of Thistles</caption>
<image>http://thalia.mit.edu:8086/fedora/get/thalia:1506255F-D68A-455E-B727-32536CFA758D/THUMBNAIL</image>
</item>
<item>
<id>thalia:3A6B1C3A-390C-02DD-1D9C-C810F88F79CE</id>
<caption>girl with flower</caption>
<image>http://thalia.mit.edu:8086/fedora/get/thalia:3A6B1C3A-390C-02DD-1D9C-C810F88F79CE/THUMBNAIL</image>
</item>
</page>
</map>
</DisplayMap>
Sample output:
<status result="true" />
maps:
Method: GET
Uri: baseuri/maps/[map type]
Description: get all the maps in the system with the specified type which the user is allowed to see. Map types are resultmap, collection, and slideshow.
Sample output:
<displaymap-list>
<DisplayMap>
<library-id>thalia</library-id>
<id>thalia:FEE71D5F-26F8-BCF8-925A-D718E81E13C3</id>
<createDate>2007-03-18T03:28:30.805Z</createDate>
<lastModifyDate>2007-03-18T03:28:30.805Z</lastModifyDate>
<title>qing map</title>
<description>qing's test map</description>
<creator>dongq</creator>
<contentModel>THALIA:MAP:COLLECTIONMAP</contentModel>
<state>A</state>
<map>
<numperscreen>25</numperscreen>
<defaultDisplay>thumbnail</defaultDisplay>
<page>
<item>
<id>thalia:93E30ABD-4F35-0EA8-BA3C-87A9F1853ECB</id>
<caption>Picture of Thistles</caption>
<image>http://thalia.mit.edu:8086/fedora/get/thalia:1506255F-D68A-455E-B727-32536CFA758D/THUMBNAIL</image>
</item>
<item>
<id>thalia:3A6B1C3A-390C-02DD-1D9C-C810F88F79CE</id>
<caption>Another flower</caption>
<image>http://thalia.mit.edu:8086/fedora/get/thalia:3A6B1C3A-390C-02DD-1D9C-C810F88F79CE/THUMBNAIL</image>
</item>
</page>
</map>
</DisplayMap>
</displaymap-list>
user:
Method: GET
Uri: baseuri/user/[user name]
Description: retrieves information about the user identified by the user name. A status error will return if the user name is not present or if the user is not found, or if the user is not authorized to view user info.
Sample output:
<user>
<id>user:dongq</id>
<name>dongq</name>
<display>Bootstrap Admin User</display>
<defaultalbum />
<isAdmin>true</isAdmin>
<state>A</state>
</user>
Method: POST
Uri: baseuri/user
Description: Creates a user. A status error will return if the user name is not provided, or if the user is not authorized to create users. After a user is created, an album will be created as the default album for that user. An authorization will be created to give the user admin rights to the default album. The user will also be given write rights to the public album.
Sample input:
<user>
<name>testuser</name>
<display>a test user account</display>
<isAdmin>false</isAdmin>
</user>
Sample output:
<user>
<id>user:testuser</id>
<name>testuser</name>
<display>a test user account</display>
<defaultalbum>thalia:testuser-MY-ALBUM</defaultalbum>
<isAdmin>false</isAdmin>
<state>A</state>
</user>
Method: PUT
Uri: baseuri/user/[user name]
Description: Modified the user identified by the user name. A status error will return if the user name is not present, or if the user doesn't have rights to modified the user, or if the user if not found.
Sample input:
<user>
<id>user:testuser</id>
<name>testuser</name>
<display>a test user account modified</display>
<defaultalbum>thalia:testuser-MY-ALBUM</defaultalbum>
<isAdmin>true</isAdmin>
<state>A</state>
</user>
Sample output:
<user>
<id>user:testuser</id>
<name>testuser</name>
<display>a test user account modified</display>
<defaultalbum>thalia:testuser-MY-ALBUM</defaultalbum>
<isAdmin>true</isAdmin>
<state>A</state>
</user>
Method: DELETE
Uri: baseuri/user/[user name]
Description: Delete the user identified by the user name. A status error will return if the user name is not present, or if the user doesn't have the authorization to delete the user. All the user's authorizations will be deleted too.
Sample output:
<status result="true>
</status>
users:
Method: GET
Uri: baseuri/users
Description: Retrieves all the users in the system.
Sample output:
<user-list>
<user>
<id>user:GUEST</id>
<name>GUEST</name>
<display>Guest User</display>
<defaultalbum />
<isAdmin>false</isAdmin>
<state>A</state>
</user>
<user>
<id>user:dongq</id>
<name>dongq</name>
<display>Bootstrap Admin User</display>
<defaultalbum />
<isAdmin>true</isAdmin>
<state>A</state>
</user>
</user-list>