Incorporación de servicios basados en REST para contenidos wiki y blog en servicios IBM Lotus Quickr 8.1.1 para el portal IBM WebSphere

En las versiones previas a la 8.1.1 de IBM® Lotus® Quickr™, las API públicas soportaban únicamente servicios relacionados con documentación. Ahora, Lotus Quickr 8.1.1 cuenta con servicios basados en REST para contenidos wiki y blog, los cuales permiten la creación, vista, actualización y eliminación de contenidos wiki y blog dentro de Lotus Quickr. Este artículo se centra en la descripción de las API de servicio de contenidos wiki y blog de estilo REST, en su uso y en cómo se pueden potenciar para construir soluciones de clientes.

Derek Carr, Advisory Software Engineer, IBM

Derek Carr is an Advisory Software Engineer at IBM working with the Lotus Quickr team in Research Triangle Park, NC. You can reach Derek at dwcarr@us.ibm.com.



Danny Levenson, Software Developer, IBM

Danny Levenson is a Software Developer working with the IBM Lotus Quickr team in Durham, NC. You can reach Danny at dlevenso@us.ibm.com.



Xu Jin Liu, Software Engineer, IBM

Liu Xu Jin is a Software Engineer at IBM working with the IBM Lotus Quickr Service team in Beijing, China. You can reach Xu Jin at liuxujin@cn.ibm.com.



Qin (Alice) Jun, Software Engineer, IBM

Qin Jun (Alice) is a Software Engineer at IBM working with the Lotus Quickr team in the China Software Development Lab in Beijing, You can reach Alice at qinjun@cn.ibm.com



31-07-2009

Lotus Quickr es un software de colaboración de equipos diseñado para transformar la manera en que se comparten los documentos y el contenido Web que ayuda a los usuarios a colaborar y trabajar eficientemente entre equipos. Lotus Quickr proporciona un conjunto de API púbicas que permiten acceder a contenidos dentro de Lotus Quickr para construir soluciones que respondan a las necesidades de los clientes.

En las versiones previas a la 8.1.1 de Lotus Quickr, las API públicas soportaban únicamente servicios relacionados con documentación. En su versión 8.1.1, Lotus Quickr mejora los servicios basados en Representational State Transfer (Transferencia de estado representacional - REST) y proporciona características para permitir a los usuarios obtener, crear, actualizar y eliminar contenidos wiki y blog a través de servicios basados en REST. Los usuarios también pueden realizar operaciones coordinadas mediante comentarios de los contenidos wiki y blog.

A fin de explicar los servicios basados en REST de contenidos wiki y blog, se describen los métodos HTTP, los parámetros de solicitud y los patrones URL soportados. Además, se incluyen solicitudes y respuestas de muestra, así como también operaciones de creación, lectura, actualización y eliminación (es decir, operaciones CRUD) en contenidos y comentarios wiki y blog.

Finalmente, se presentan códigos de muestra en vivo que muestran cómo listar entradas de blog en una biblioteca blog, cómo crear entradas de blog y cómo comentar una entrada de blog para ayudarlo a comprender con mayor profundidad estos servicios basados en REST.

Requisitos previos

Para la total comprensión de este artículo, se requieren los siguientes conocimientos previos:

  • Lotus Quickr
  • Servicios REST
  • Formato Atom Syndication
  • Conocimientos básicos de IBM WebSphere® Portal e IBM Lotus Web Content Management
  • Programación Java™

Contenidos wiki y blog

En esta sección, analizaremos el contexto servlet y todos los servicios soportados para wikis y blogs como el patrón URL del contexto servlet, los métodos HTTP soportados y los parámetros de solicitud. También se incluirán una solicitud y una respuesta de muestra para cada servicio.

Contexo servlet

A diferencia de los servicios REST de documentos de Lotus Quickr, los cuales son dm/atom, el contexto servlet de los servicios REST de wiki y blog es webcontent/rest y se puede describir de la siguiente forma:

  • Todas las rutas completas de los servicios deben seguir el patrón <protocol>://<host>:<port>/webcontent/rest/<url-pattern>. Por ejemplo: si el protocolo es HTTP, el servidor es lwptsthink43.cn.example.com y el puerto es 10038; la ruta completa de este servicio será:

    http://lwptsthink43.cn.example.com:10038/webcontent/rest/introspection
  • Este servicio devuelve un documento de servicio que contendrá un vínculo hacia bibliotecas y la fuente.
  • Este servicio soporta únicamente el método GET.
  • Dicho método GET requiere de autenticación y no se soporta el acceso anónimo.
  • No se soportan argumentos adicionales ni encabezados HTTP.

A continuación se incluye una solicitud de muestra y una respuesta de muestra (ver Listado 1).

Solicitud de muestra: GET /webcontent/rest/introspection HTTP/1.1

Listado 1. Respuesta de muestra
<?xml version="1.0" encoding="UTF-8"?>
<service xmlns="http://purl.org/atom/app#" 
xmlns:atom="http://www.w3.org/2005/Atom">
  <workspace>
    <atom:title type="text">MediaLibrary Documents</atom:title>
    <collection 
    href="http://lwptsthink43.cn.ibm.com:10038/webcontent/rest/libraries/feed">
      <atom:title type="text">All Libraries</atom:title>
      <accept>application/*,image/*,*/*</accept>
    </collection>
    <collection href="http://lwptsthink43.cn.ibm.com:10038/webcontent/rest/libraries/
    feed?category=wiki">
      <atom:title type="text">All wiki libraries</atom:title>
      <accept>application/*,image/*,*/*</accept>
    </collection>
    <collection href="http://lwptsthink43.cn.ibm.com:10038/webcontent/rest/libraries/
    feed?category=blog">
      <atom:title type="text">All blog libraries</atom:title>
      <accept>application/*,image/*,*/*</accept>
    </collection>
  </workspace>
</service>

<host>:<port>/libraries/feed

Este servicio se puede describir de la siguiente manera:

  • Devuelve una fuente de las bibliotecas de componentes en Lotus Web Content Management.
  • Soporta únicamente el método GET.
  • Dicho método GET requiere de autenticación y no soporta el acceso anónimo.

Los argumentos soportados se detallan en la Tabla 1.

Tabla 1. Argumentos soportados para <host>:<port>/libraries/feed
ArgumentoValorEn solicitudDescripción
type (tipo)wiki, blog, all (todos)OpcionalLimita la lista de bibliotecas al tipo especificado
placeId (identificación de lugar)identificación de lugarOpcionalLimita la lista a las bibliotecas de componentes contenidas en el lugar especificado
page (página)1, 2, 3, etcOpcionalEspecifica la página a obtener considerando un tamaño de hoja constante
pagesize (tamaño de la página)10, 20, etcOpcionalEspecifica la cantidad de elementos que se incluirán en una solicitud paginada
sKpublished (publicado), created (creado), modified (modificado)OpcionalClave de clasificación de la respuesta
sOdsc, ascOpcionalOrden de clasificación de la respuesta
aclsfalse (falso), true (verdadero)OpcionalEspecifica si los permisos del usuario autenticado se devuelven en cada biblioteca

En la anterior tabla:

  • El valor predeterminado de todos los argumentos está marcado en negrita.
  • Todos los lugares del argumento placeId pueden incluir varias bibliotecas wiki o blog; si el usuario especifica la identificación de lugar, sólo se devolverán las bibliotecas de ese lugar.
  • Si el argumento acls está establecido en “true”, se devuelven los permisos de los usuarios actuales sobre cada recurso. Los permisos son: View (ver), Edit (editar), Delete (eliminar) y AddChild (agregar hijo).
  • El rol Manager (gerente) posee todos los permisos; el rol Editor (editor) posee los permisos View, Edit y AddChild; el rol Contributor (colaborador) posee los permisos View y AddChild; y el rol Reader (lector) posee únicamente el permiso View.

A continuación se incluye una solicitud de muestra y una respuesta de muestra (ver Listado 2).

Solicitud de muestra: GET /webcontent/rest/libraries/feed?acls=true HTTP/1.1

Listado 2. Respuesta de muestra
<?xml version="1.0" encoding="UTF-8"?>
<feed xmlns="http://www.w3.org/2005/Atom">
  <id>urn:lsid:ibm.com:td:libraries</id>
  <link href="http://lwptsthink43.cn.ibm.com:10038/webcontent/rest/libraries/
  feed" rel="self"></link>
  <category term="library" scheme="tag:ibm.com,2006:td/type" l
  abel="library"></category>
  <title type="text">All Libraries</title>
  <generator uri="http://lwptsthink43.cn.ibm.com:10038/webcontent/rest/" 
  version="1.0">Teamspace Web Content</generator>
  <updated>2008-11-26T07:29:05.422Z</updated>
  <entry xmlns:td="urn:ibm.com/td">
    <id>urn:lsid:ibm.com:td:7a1cd3004be710acb161f18ffc876575</id>
    <link href="http://lwptsthink43.cn.ibm.com:10038/webcontent/rest/library/
    7a1cd3004be710acb161f18ffc876575/entry" rel="self"></link>
    <link href="http://lwptsthink43.cn.ibm.com:10038/lotus/poc/?
    uri=wcm%3aa93444004be710aeb181f18ffc876575" rel="alternate"></link>
    <link href="http://lwptsthink43.cn.ibm.com:10038/webcontent/rest/library/
    7a1cd3004be710acb161f18ffc876575/entry" rel="edit"></link>
    <category term="library" scheme="tag:ibm.com,2006:td/type" 
    label="library"></category>
    <category term="wiki" scheme="tag:ibm.com,2006:td/type" 
    label="wiki"></category>
    <title type="text">Wiki</title>
    <summary type="text">Allows the creation of wiki pages with user content by 
    teamspace members.</summary>
    <td:label>7a1bd3804be710aab160f18ffc876575</td:label>
    <published>2008-11-12T05:57:50.078Z</published>
    <updated>2008-11-25T09:13:58.875Z</updated>
    <td:modified>2008-11-12T05:57:50.078Z</td:modified>
    <td:created>2008-11-12T05:57:50.078Z</td:created>
<content type="application/atom+xml" src="http://lwptsthink43.cn.ibm.com:10038/
webcontent/rest/library/7a1cd3004be710acb161f18ffc876575/feed"></content>
<td:permissions>Delete,Edit,AddChild,View</td:permissions>
  </entry>
  <entry xmlns:td="urn:ibm.com/td">
    <id>urn:lsid:ibm.com:td:daf4dd004be710a5b135f18ffc876575</id>
    <link href="http://lwptsthink43.cn.ibm.com:10038/webcontent/rest/library/
    daf4dd004be710a5b135f18ffc876575/entry" rel="self"></link>
    <link href="http://lwptsthink43.cn.ibm.com:10038/lotus/poc/?uri=
    wcm%3a7e93bc804be710a9b15bf18ffc876575" rel="alternate"></link>
    <link href="http://lwptsthink43.cn.ibm.com:10038/webcontent/rest/library/
    daf4dd004be710a5b135f18ffc876575/entry" rel="edit"></link>
    <category term="library" scheme="tag:ibm.com,2006:td/type" 
    label="library"></category>
    <category term="blog" scheme="tag:ibm.com,2006:td/type" 
    label="blog"></category>
    <title type="text">Blog</title>
    <summary type="text">Allows the posting of blog entries and comments by 
    teamspace members.</summary>
    <td:label>b6006a004be710a5b134f18ffc876575</td:label>
    <published>2008-11-12T05:57:47.234Z</published>
    <updated>2008-11-25T09:13:59.703Z</updated>
    <td:modified>2008-11-12T05:57:47.234Z</td:modified>
    <td:created>2008-11-12T05:57:47.234Z</td:created>
<content type="application/atom+xml" src="http://lwptsthink43.cn.ibm.com:10038/
webcontent/rest/library/daf4dd004be710a5b135f18ffc876575/feed"></content>
<td:permissions>AddChild,View</td:permissions>
  </entry>
</feed>

/library/{library-id}/entry

Este servicio devuelve la entrada de una biblioteca especificada por el usuario y únicamente se soporta el método GET.

La Tabla 2 muestra el argumento soportado.

Tabla 2. Argumento soportado para library/{library-id}/entry
ArgumentoValorEn solicitudDescripción
aclsfalse, trueOpcionalEspecifica si los permisos del usuario autenticado se devuelven en cada biblioteca

A continuación se incluye una solicitud de muestra y su correspondiente respuesta (ver Listado 3).

Solicitud de muestra: GET /webcontent/rest/library/7a1cd3004be710acb161f18ffc876575/entry?acls=true HTTP/1.1

Listado 3. Respuesta de muestra
<entry xmlns="http://www.w3.org/2005/Atom" xmlns:td="urn:ibm.com/td">
  <id>urn:lsid:ibm.com:td:7a1cd3004be710acb161f18ffc876575</id> 
  <link href="http://lwptsthink43.cn.ibm.com:10038/webcontent/rest/library/
  7a1cd3004be710acb161f18ffc876575/entry" rel="self" /> 
  <link href="http://lwptsthink43.cn.ibm.com:10038/lotus/poc/?uri=
  wcm%3aa93444004be710aeb181f18ffc876575" rel="alternate" /> 
  <link href="http://lwptsthink43.cn.ibm.com:10038/webcontent/rest/library/
  7a1cd3004be710acb161f18ffc876575/entry" rel="edit" /> 
  <category term="library" scheme="tag:ibm.com,2006:td/type" label="library" /> 
  <category term="wiki" scheme="tag:ibm.com,2006:td/type" label="wiki" /> 
  <title type="text">Wiki</title> 
  <summary type="text">Allows the creation of wiki pages with user content by 
  teamspace members.</summary> 
  <td:label>7a1bd3804be710aab160f18ffc876575</td:label> 
  <published>2008-11-12T05:57:50.078Z</published> 
  <updated>2008-11-25T09:13:58.875Z</updated> 
  <td:modified>2008-11-12T05:57:50.078Z</td:modified> 
  <td:created>2008-11-12T05:57:50.078Z</td:created> 
  <content type="application/atom+xml" src="http://lwptsthink43.cn.ibm.com:10038/
  webcontent/rest/library/7a1cd3004be710acb161f18ffc876575/feed" /> 
  <td:permissions>Delete,Edit,AddChild,View</td:permissions> 
  </entry>

/library/{library-id}/feed

En este servicio:

  • Se soportan los métodos GET y POST.
  • POST crea un nuevo documento en una biblioteca especificada (es decir, una página wiki o un mensaje de blog).
  • GET devuelve una fuente de los documentos en la biblioteca especificada.

Los argumentos mostrados en la Tabla 3 son soportados únicamente por el método GET; el método POST no soporta ningún argumento.

Tabla 3. Argumentos soportados por el método GET
ArgumentoValorEn solicitudDescripción
inline (en la línea)false, trueOpcionalEstas entradas contienen el contenido real en lugar de un atributo src con un vínculo hacia el contenido cuando inline=true
page1, 2, 3, etcOpcionalEspecifica la página a obtener considerando un tamaño de hoja constante
pagesize10, 20, etcOpcionalEspecifica la cantidad de elementos que se incluirán en una solicitud paginada
sKtitle (título), updated, published, created, modifiedOptionalClave de clasificación de la respuesta
sOdsc, ascOpcionalOrden de clasificación de la respuesta
aclsfalse, trueOpcionalEspecifica si los permisos del usuario autenticado se devuelven en cada biblioteca

Cuando el argumento inline se establece en “true”, el elemento <content> de la entrada es el contenido real de la página wiki page o el mensaje blog (para obtener más información, ver la respuesta de muestra). Si este argumento se establece en false, el elemento <content> de la entrada será de la siguiente manera:

<content src=http://lwptsthink43.cn.ibm.com:10038/webcontent/rest/library/
7a1cd3004be710acb161f18ffc876575/document/a93444004be710aeb181f18ffc876575/
media type="text/html">
</content>

A continuación se incluye una solicitud de muestra y su correspondiente respuesta (ver Listado 4):

Método GET

Solicitud de muestra:

GET /webcontent/rest/library/7a1cd3004be710acb161f18ffc876575/feed?inline=true HTTP/1.1

Listado 4. Respuesta de muestra
<?xml version="1.0" encoding="UTF-8"?>
<feed xmlns="http://www.w3.org/2005/Atom">
  <id>urn:lsid:ibm.com:td:7a1cd3004be710acb161f18ffc876575</id>
  <link href="http://lwptsthink43.cn.ibm.com:10038/webcontent/rest/library/
  7a1cd3004be710acb161f18ffc876575/feed" rel="self"></link>
  <category term="library" scheme="tag:ibm.com,2006:td/type" 
  label="library"></category>
  <title type="text">Wiki</title>
  <generator uri="http://lwptsthink43.cn.ibm.com:10038/webcontent/rest/library/
  7a1cd3004be710acb161f18ffc876575/" version="1.0">Teamspace 
  Web Content</generator>
  <updated>2008-11-10T03:40:23.469Z</updated>
  <collection href="http://lwptsthink43.cn.ibm.com:10038/webcontent/rest/library/
  7a1cd3004be710acb161f18ffc876575/feed" xmlns="http://purl.org/atom/app#">
    <atom:title type="text" xmlns:atom="http://www.w3.org/2005/Atom">
    Wiki</atom:title>
    <accept>text/html,application/atom+xml</accept>
  </collection>
  <entry xmlns:td="urn:ibm.com/td">
    <id>urn:lsid:ibm.com:td:a93444004be710aeb181f18ffc876575</id>
    <title type="text">Welcome to your new Wiki</title>
    <published>2007-01-30T21:17:44.220Z</published>
    <updated>2008-11-10T03:40:23.469Z</updated>
    <td:modified>2008-11-10T03:40:23.469Z</td:modified>
    <td:created>2007-01-30T21:17:44.220Z</td:created>
    <summary type="text">Use the Team Wiki to communicate thoughts 
    about project.</summary>
    <td:uuid>a93444004be710aeb181f18ffc876575</td:uuid>
    <author>
      <name>wpsadmin g wpsadmin sn</name>
      <email>wpsadmin@cn.ibm.com</email>
      <uri>uid%3Dwpsadmin%2Ccn%3Dusers%2Cl%3Dwestford%2Cst%3Dmassachusetts
      %2Cc%3Dus%2Cou%3Dlotus%2Co%3Dsoftware+group%2Cdc%3Dibm%2Cdc%3Dcom</uri>
    </author>
    <link href="/lotus/poc/?uri=wcm%3aa93444004be710aeb181f18ffc876575" rel="alternate">
    </link>
    <content type="html">Use the Team Wiki to communicate thoughts about project, 
    ideas, and to share information. You can start a thought in the wiki and then watch 
    as team members respond. Team Wiki is a good place to brainstorm with the team.
    <br> Click "Edit Page" to get started.<br> Tip: Use the wiki instead 
    of email. Because questions and answers are often hidden in personal email, post a 
    blog to generate quick responses that are visible to the team.<p style="margin: 
    0px;"></p></content>
    <category scheme="tag:ibm.com,2006:td/" label="document" 
    term="document"></category>
    <category scheme="tag:ibm.com,2006:td/" label="page" 
    term="page"></category>
    <link href="http://lwptsthink43.cn.ibm.com:10038/webcontent/rest/library/
    7a1cd3004be710acb161f18ffc876575/document/a93444004be710aeb181f18ffc876575/
    entry" rel="self"></link>
    <link href="http://lwptsthink43.cn.ibm.com:10038/webcontent/rest/library/
    7a1cd3004be710acb161f18ffc876575/document/a93444004be710aeb181f18ffc876575/
    entry" rel="edit"></link>
    <link href="http://lwptsthink43.cn.ibm.com:10038/webcontent/rest/library/
    7a1cd3004be710acb161f18ffc876575/document/a93444004be710aeb181f18ffc876575/feed" 
    rel="replies"></link>
  </entry>
</feed>

Método POST

A continuación se incluye una solicitud de muestra y su correspondiente respuesta (ver Listados 5 y 6, respectivamente).

Listado 5. Solicitud de muestra
POST /webcontent/rest/library/7a1cd3004be710acb161f18ffc876575/feed?inline=true HTTP/1.1
Host: lwptsthink43.cn.ibm.com
Content-Type: application/msword
Content-Length: nnnn
Authorization: Basic ...
<entry xmlns="http://www.w3.org/2005/Atom">
   <content type="html"><p><b> </b>&nbsp;&nbsp;
   Programmatically created entry.</p>
   </content>
   <title type="text">Test Entry Title
   </title>
   <summary type="text">Summary for Test Entry Ttile
   </summary>
</entry>
Listado 6. Respuesta de muestra
HTTP/1.1 200 OK
Date: Fri, 13 Apr 2007 17:17:11 GMT
Content-Length: nnn
Content-Type: application/atom+xml; charset="utf-8"
Location: http://lwptsthink43.cn.ibm.com:10038/webcontent/rest/library/
6b1fc9804a9207249ceadc23ebd19157/document/6df9c6004c127f26bc10fdaa37d7846a/entry
<entry xmlns="http://www.w3.org/2005/Atom" xmlns:td="urn:ibm.com/td">
  <id>urn:lsid:ibm.com:td:6df9c6004c127f26bc10fdaa37d7846a</id>
  <title type="text">Test Entry Title </title>
  <published>2008-11-26T09:32:39.484Z</published>
  <updated>2008-11-26T09:32:39.984Z</updated>
  <td:modified>2008-11-26T09:32:39.984Z</td:modified>
  <td:created>2008-11-26T09:32:39.484Z</td:created>
  <summary type="text">Summary for Test Entry Title</summary>
  <td:uuid>6df9c6004c127f26bc10fdaa37d7846a</td:uuid>
  <author>
    <name>wpsadmin g wpsadmin sn</name>
    <email>wpsadmin@cn.ibm.com</email>
    <uri>uid%3Dwpsadmin%2Ccn%3Dusers%2Cl%3Dwestford%2Cst%3Dmassachusetts%2Cc
    %3Dus%2Cou%3Dlotus%2Co%3Dsoftware+group%2Cdc%3Dibm%2Cdc%3Dcom</uri>
  </author>
  <link href="/lotus/poc/?uri=wcm%3a6df9c6004c127f26bc10fdaa37d7846a" 
  rel="alternate"></link>
  <content type="text/html" src="http://lwptsthink43.cn.ibm.com:10038/webcontent/
  rest/library/6b1fc9804a9207249ceadc23ebd19157/document/
  6df9c6004c127f26bc10fdaa37d7846a/media"></content>
  <category scheme="tag:ibm.com,2006:td/" label="document" 
  term="document"></category>
  <category scheme="tag:ibm.com,2006:td/" label="page" 
  term="page"></category>
  <link href="http://lwptsthink43.cn.ibm.com:10038/webcontent/rest/library/
  6b1fc9804a9207249ceadc23ebd19157/document/6df9c6004c127f26bc10fdaa37d7846a/entry" 
  rel="self"></link>
  <link href="http://lwptsthink43.cn.ibm.com:10038/webcontent/rest/library/
  6b1fc9804a9207249ceadc23ebd19157/document/6df9c6004c127f26bc10fdaa37d7846a/entry" 
  rel="edit"></link>
  <link href="http://lwptsthink43.cn.ibm.com:10038/webcontent/rest/library/
  6b1fc9804a9207249ceadc23ebd19157/document/6df9c6004c127f26bc10fdaa37d7846a/feed" 
  rel="replies"></link>
</entry>

/library/{library-id}/document/{document-id}/entry

Este servicio soporta los métodos GET, PUT y DELETE:

  • GET devuelve una entrada para el documento especificado.
  • PUT actualiza el documento especificado.
  • DELETE elimina el documento especificado.

El argumento mostrado en la Tabla 4 es soportado únicamente por el método GET; los métodos PUT y DELETE no soportan ningún argumento.

Tabla 4. Argumento soportado por el método GET
ArgumentoValorEn solicitudDescripción
aclsfalse, trueOpcionalEspecifica si los permisos del usuario autenticado se devuelven en cada biblioteca

Método GET

A continuación se incluye una solicitud de muestra y su correspondiente respuesta (ver Listado 7).

Solicitud de muestra:

GET /webcontent/rest/library/7e0bad004a9206d69c88dc23ebd19157/
document/886a62804c128889bc18fdaa37d7846a/entry HTTP/1.1

Listado 7. Respuesta de muestra
<?xml version="1.0" encoding="UTF-8" ?> 
<entry xmlns="http://www.w3.org/2005/Atom" xmlns:td="urn:ibm.com/td">
  <id>urn:lsid:ibm.com:td:886a62804c128889bc18fdaa37d7846a</id> 
  <title type="text">Test Entry Title</title> 
  <published>2008-11-26T09:49:51.609Z</published> 
  <updated>2008-11-26T09:49:51.609Z</updated> 
  <td:modified>2008-11-26T09:49:51.609Z</td:modified> 
  <td:created>2008-11-26T09:49:51.609Z</td:created> 
  <summary type="text">Programmatically created entry summary</summary> 
  <td:uuid>886a62804c128889bc18fdaa37d7846a</td:uuid> 
 <author>
  <name>wpsadmin g wpsadmin sn</name> 
  <email>wpsadmin@cn.ibm.com</email> 
  <uri>uid%3Dwpsadmin%2Ccn%3Dusers%2Cl%3Dwestford%2Cst%3Dmassachusetts%2Cc%3Dus
  %2Cou%3Dlotus%2Co%3Dsoftware+group%2Cdc%3Dibm%2Cdc%3Dcom</uri> 
  </author>
  <link href="/lotus/poc/?uri=wcm%3a886a62804c128889bc18fdaa37d7846a" rel="alternate" /> 
 <content 
 type="text/html" src="http://lwptsthink43.cn.ibm.com:10038/webcontent/rest/library/
	7e0bad004a9206d69c88dc23ebd19157/document/886a62804c128889bc18fdaa37d7846a/
	media" /> 
  <category scheme="tag:ibm.com,2006:td/" label="document" term="document" /> 
 <link href="http://lwptsthink43.cn.ibm.com:10038/webcontent/rest/library/
 7e0bad004a9206d69c88dc23ebd19157/document/886a62804c128889bc18fdaa37d7846a/entry" 
 rel="self" /> 
 <link href="http://lwptsthink43.cn.ibm.com:10038/webcontent/rest/library/
 7e0bad004a9206d69c88dc23ebd19157/document/886a62804c128889bc18fdaa37d7846a/entry" 
 rel="edit" /> 
 <link href="http://lwptsthink43.cn.ibm.com:10038/webcontent/rest/library/
 7e0bad004a9206d69c88dc23ebd19157/document/886a62804c128889bc18fdaa37d7846a/feed" 
 rel="replies" /> 
</entry>

Método PUT

A continuación se incluye una solicitud de muestra y su correspondiente respuesta (ver Listados 8 y 9, respectivamente).

Listado 8. Solicitud de muestra
PUT /webcontent/rest/library/7e0bad004a9206d69c88dc23ebd19157/
document/886a62804c128889bc18fdaa37d7846a/entry HTTP/1.1 
Host: lwptsthink43.cn.ibm.com
Content-Length: nnnn
Authorization: Basic ...
<entry xmlns="http://www.w3.org/2005/Atom">
   <content type="html"><p><b> </b>&nbsp;&nbsp;
   Programmatically Updated entry.</p>
   </content>
   <title type="text">Test Entry Title-Updated
   </title>
   <summary type="text">Summary for Test Entry Ttile-Updated
   </summary>
</entry>
Listado 9. Respuesta de muestra
HTTP/1.1 200 OK
Date: Fri, 13 Apr 2007 17:17:11 GMT
Content-Length: nnn
Content-Type: application/atom+xml; charset="utf-8"
Location: http://lwptsthink43.cn.ibm.com:10038/webcontent/rest/library/
6b1fc9804a9207249ceadc23ebd19157/document/6df9c6004c127f26bc10fdaa37d7846a/entry
<entry xmlns="http://www.w3.org/2005/Atom" xmlns:td="urn:ibm.com/td">
  <id>urn:lsid:ibm.com:td:6df9c6004c127f26bc10fdaa37d7846a</id>
  <title type="text">Test Entry Title-Updated </title>
  <published>2008-11-26T09:32:39.484Z</published>
  <updated>2008-11-26T09:32:39.984Z</updated>
  <td:modified>2008-11-26T09:32:39.984Z</td:modified>
  <td:created>2008-11-26T09:32:39.484Z</td:created>
  <summary type="text">Summary for Test Entry Title-Updated </summary>
  <td:uuid>6df9c6004c127f26bc10fdaa37d7846a</td:uuid>
  <author>
    <name>wpsadmin g wpsadmin sn</name>
    <email>wpsadmin@cn.ibm.com</email>
    <uri>uid%3Dwpsadmin%2Ccn%3Dusers%2Cl%3Dwestford%2Cst%3Dmassachusetts%2Cc
    %3Dus%2Cou%3Dlotus%2Co%3Dsoftware+group%2Cdc%3Dibm%2Cdc%3Dcom</uri>
  </author>
  <link href="/lotus/poc/?uri=wcm%3a6df9c6004c127f26bc10fdaa37d7846a" 
  rel="alternate"></link>
  <content type="text/html" src="http://lwptsthink43.cn.ibm.com:10038/webcontent/
  rest/library/6b1fc9804a9207249ceadc23ebd19157/
  document/6df9c6004c127f26bc10fdaa37d7846a/media"></content>
  <category scheme="tag:ibm.com,2006:td/" label="document" 
  term="document"></category>
  <category scheme="tag:ibm.com,2006:td/" label="page" 
  term="page"></category>
  <link href="http://lwptsthink43.cn.ibm.com:10038/webcontent/rest/library/
  6b1fc9804a9207249ceadc23ebd19157/document/6df9c6004c127f26bc10fdaa37d7846a/entry" 
  rel="self"></link>
  <link href="http://lwptsthink43.cn.ibm.com:10038/webcontent/rest/library/
  6b1fc9804a9207249ceadc23ebd19157/document/6df9c6004c127f26bc10fdaa37d7846a/entry" 
  rel="edit"></link>
  <link href="http://lwptsthink43.cn.ibm.com:10038/webcontent/rest/library/
  6b1fc9804a9207249ceadc23ebd19157/document/6df9c6004c127f26bc10fdaa37d7846a/feed" 
  rel="replies"></link>
</entry>

Respuesta de muestra:

HTTP/1.1 200 OK
Date: Fri, 13 Apr 2008 17:17:11 GMT

/library/{library-id}/document/{document-id}/feed

Este servicio soporta los métodos GET y POST:

  • POST crea un nuevo comentario para el documento especificado.
  • GET devuelve una fuente para los comentarios, para el documento especificado.

Los argumentos mostrados en la Tabla 5 son soportados únicamente por el método GET; el método POST no soporta ningún argumento.

Tabla 5. Argumentos soportados por el método GET
ArgumentoValorEn solicitudDescripción
inlinefalse, trueOpcionalEstas entradas contienen el contenido real en lugar de un atributo src con un vínculo hacia el contenido cuando inline=true
page1, 2, 3, etcOpcionalEspecifica la página a obtener considerando un tamaño de hoja constante
pagesize10, 20, etcOpcionalEspecifica la cantidad de elementos que se incluirán en una solicitud paginada
sKtitle, updated, publishedOpcionalClave de clasificación de la respuesta
sOdsc, ascOpcionalOrden de clasificación de la respuesta
aclsfalse, trueOpcionalEspecifica si los permisos del usuario autenticado se devuelven en cada biblioteca

Método GET

A continuación se incluye una solicitud de muestra y su correspondiente respuesta (ver Listado 10).

Solicitud de muestra:

GET /webcontent/rest/library/7e0bad004a9206d69c88dc23ebd19157/document/
886a62804c128889bc18fdaa37d7846a/feed HTTP/1.1

Listado 10. Respuesta de muestra
<?xml version="1.0" encoding="UTF-8"?>
<feed xmlns="http://www.w3.org/2005/Atom">
  <id>urn:lsid:ibm.com:td:886a62804c128889bc18fdaa37d7846a</id>
  <link href="http://lwptsthink43.cn.ibm.com:10038/webcontent/rest/library/
  7e0bad004a9206d69c88dc23ebd19157/document/886a62804c128889bc18fdaa37d7846a/feed" 
  rel="self"></link>
  <category term="comment" scheme="tag:ibm.com,2006:td/type" 
  label="comment"></category>
  <title type="text">Test Entry</title>
  <generator uri="http://lwptsthink43.cn.ibm.com:10038/webcontent/rest/library/
  7e0bad004a9206d69c88dc23ebd19157/" 
  version="1.0">Teamspace Web Content</generator>
  <updated>2008-11-27T01:31:02.906Z</updated>
  <collection href="http://lwptsthink43.cn.ibm.com:10038/webcontent/rest/library/
  7e0bad004a9206d69c88dc23ebd19157/document/886a62804c128889bc18fdaa37d7846a/feed" 
  xmlns="http://purl.org/atom/app#">
    <atom:title type="text" xmlns:atom="http://www.w3.org/2005/Atom">
    Test Entry</atom:title>
    <accept>text/html,application/atom+xml</accept>
  </collection>
  <entry xmlns:td="urn:ibm.com/td">
    <id>urn:lsid:ibm.com:td:fb73a7804c148a23bc28fdaa37d7846a</id>
    <title type="text">wpsadmin g wpsadmin sn Today at 9:31 AM</title>
    <published>2008-11-27T01:31:02.906Z</published>
    <updated>2008-11-27T01:31:02.906Z</updated>
    <td:modified>2008-11-27T01:31:02.906Z</td:modified>
    <td:created>2008-11-27T01:31:02.906Z</td:created>
    <summary type="text">test again</summary>
    <td:uuid>fb73a7804c148a23bc28fdaa37d7846a</td:uuid>
    <author>
      <name>wpsadmin g wpsadmin sn</name>
      <email>wpsadmin@cn.ibm.com</email>
      <uri>uid%3Dwpsadmin%2Ccn%3Dusers%2Cl%3Dwestford%2Cst%3Dmassachusetts%2Cc
      %3Dus%2Cou%3Dlotus%2Co%3Dsoftware+group%2Cdc%3Dibm%2Cdc%3Dcom</uri>
    </author>
    <link href="/lotus/poc/?uri=wcm%3afb73a7804c148a23bc28fdaa37d7846a" 
    rel="alternate"></link>
    <content type="text/html" src="http://lwptsthink43.cn.ibm.com:10038/
webcontent/rest/library/7e0bad004a9206d69c88dc23ebd19157/document/
1c1cef804c1488b4bc1afdaa37d7846a/comment/fb73a7804c148a23bc28fdaa37d7846a/
media"></content>
    <category scheme="tag:ibm.com,2006:td/" label="comment" 
    term="comment"></category>
    <link href="http://lwptsthink43.cn.ibm.com:10038/webcontent/rest/library/
    7e0bad004a9206d69c88dc23ebd19157/document/1c1cef804c1488b4bc1afdaa37d7846a/
    comment/fb73a7804c148a23bc28fdaa37d7846a/entry" rel="self"></link>
    <link href="http://lwptsthink43.cn.ibm.com:10038/webcontent/rest/library/
    7e0bad004a9206d69c88dc23ebd19157/document/1c1cef804c1488b4bc1afdaa37d7846a/
    comment/fb73a7804c148a23bc28fdaa37d7846a/entry" rel="edit"></link>
  </entry>
  <entry xmlns:td="urn:ibm.com/td">
    <id>urn:lsid:ibm.com:td:d23708004c1488b9bc26fdaa37d7846a</id>
    <title type="text">wpsadmin g wpsadmin sn Today at 9:28 AM</title>
    <published>2008-11-27T01:28:28.344Z</published>
    <updated>2008-11-27T01:28:28.344Z</updated>
    <td:modified>2008-11-27T01:28:28.344Z</td:modified>
    <td:created>2008-11-27T01:28:28.344Z</td:created>
    <summary type="text">test</summary>
    <td:uuid>d23708004c1488b9bc26fdaa37d7846a</td:uuid>
    <author>
      <name>wpsadmin g wpsadmin sn</name>
      <email>wpsadmin@cn.ibm.com</email>
      <uri>uid%3Dwpsadmin%2Ccn%3Dusers%2Cl%3Dwestford%2Cst%3Dmassachusetts
      %2Cc%3Dus%2Cou%3Dlotus%2Co%3Dsoftware+group%2Cdc%3Dibm%2Cdc%3Dcom</uri>
    </author>
    <link href="/lotus/poc/?uri=wcm%3ad23708004c1488b9bc26fdaa37d7846a" 
    rel="alternate"></link>
    <content type="text/html" src="http://lwptsthink43.cn.ibm.com:10038/webcontent/
    rest/library/7e0bad004a9206d69c88dc23ebd19157/document/
    1c1cef804c1488b4bc1afdaa37d7846a/comment/d23708004c1488b9bc26fdaa37d7846a/
    media"></content>
    <category scheme="tag:ibm.com,2006:td/" label="comment" 
    term="comment"></category>
    <link href="http://lwptsthink43.cn.ibm.com:10038/webcontent/rest/library/
    7e0bad004a9206d69c88dc23ebd19157/document/1c1cef804c1488b4bc1afdaa37d7846a/
    comment/d23708004c1488b9bc26fdaa37d7846a/entry" rel="self"></link>
    <link href="http://lwptsthink43.cn.ibm.com:10038/webcontent/rest/library/
    7e0bad004a9206d69c88dc23ebd19157/document/1c1cef804c1488b4bc1afdaa37d7846a/
    comment/d23708004c1488b9bc26fdaa37d7846a/entry" rel="edit"></link>
  </entry>
</feed>

Método POST

A continuación se incluye una solicitud de muestra y su correspondiente respuesta (ver Listados 11 y 12, respectivamente).

Listado 11. Solicitud de muestra
POST /webcontent/rest/library/7e0bad004a9206d69c88dc23ebd19157/
document/886a62804c128889bc18fdaa37d7846a/feed HTTP/1.1
Host: lwptsthink43.cn.ibm.com
Content-Type: application/msword
Content-Length: nnnn
Authorization: Basic ...
<entry xmlns="http://www.w3.org/2005/Atom">
   <content type="html"><p><b> </b>
   &nbsp;&nbsp;Programmatically created entry.</p>
   </content>
   <title type="text">Test Entry Title
   </title>
   <category scheme="tag:ibgm.com,2006:td/type" term="comment">
   </category>
</entry>
Listado 12. Respuesta de muestra
HTTP/1.1 200 OK
Date: Fri, 13 Apr 2008 17:17:11 GMT
Content-Length: nnn
Content-Type: application/atom+xml; charset="utf-8"
Location: http://lwptsthink43.cn.ibm.com:10038/webcontent/rest/library/
6b1fc9804a9207249ceadc23ebd19157/document/096d53804c148da9bc34fdaa37d7846a/
comment/096d53804c148da9bc33fdaa37d7846a/entry
<entry xmlns="http://www.w3.org/2005/Atom" xmlns:td="urn:ibm.com/td">
  <id>urn:lsid:ibm.com:td:096d53804c148da9bc33fdaa37d7846a</id>
  <title type="text">wpsadmin g wpsadmin sn Today at 9:37 AM</title>
  <published>2008-11-27T01:37:30.500Z</published>
  <updated>2008-11-27T01:37:30.672Z</updated>
  <td:modified>2008-11-27T01:37:30.672Z</td:modified>
  <td:created>2008-11-27T01:37:30.500Z</td:created>
  <summary type="text">Thu Nov 27 09:42:45 CST 2008  
  Programmatically created comment.</summary>
  <td:uuid>096d53804c148da9bc33fdaa37d7846a</td:uuid>
  <author>
    <name>wpsadmin g wpsadmin sn</name>
    <email>wpsadmin@cn.ibm.com</email>
    <uri>uid%3Dwpsadmin%2Ccn%3Dusers%2Cl%3Dwestford%2Cst%3Dmassachusetts%2Cc
    %3Dus%2Cou%3Dlotus%2Co%3Dsoftware+group%2Cdc%3Dibm%2Cdc%3Dcom</uri>
  </author>
  <link href="/lotus/poc/?uri=wcm%3a096d53804c148da9bc33fdaa37d7846a" 
  rel="alternate"></link>
  < contenttype="text/html" src="http://lwptsthink43.cn.ibm.com:10038/webcontent/
rest/library/6b1fc9804a9207249ceadc23ebd19157/document/096d53804c148da9bc34fdaa37d7846a/
comment/096d53804c148da9bc33fdaa37d7846a/media"></content>
  <category scheme="tag:ibm.com,2006:td/" label="comment" 
  term="comment"></category>
  <link href="http://lwptsthink43.cn.ibm.com:10038/webcontent/rest/library/
  6b1fc9804a9207249ceadc23ebd19157/document/096d53804c148da9bc34fdaa37d7846a/comment/
  096d53804c148da9bc33fdaa37d7846a/entry" rel="self"></link>
  <link href="http://lwptsthink43.cn.ibm.com:10038/webcontent/rest/library/
  6b1fc9804a9207249ceadc23ebd19157/document/096d53804c148da9bc34fdaa37d7846a/
  comment/096d53804c148da9bc33fdaa37d7846a/entry" rel="edit"></link>
</entry>

/library/{library-id}/document/{document-id}/comment/comment-id}/entry

Este servicio soporta los métodos GET, PUT y DELETE:

  • GET devuelve una entrada para el comentario especificado.
  • PUT actualiza el comentario especificado.
  • DELETE elimina el comentario especificado.

El argumento mostrado en la Tabla 6 es soportado sólo cuando se ejecuta el método GET; los métodos PUT y DELETE no soportan ningún argumento.

Tabla 6. Argumento soportado por el método GET
ArgumentoValorEn solicitudDescripción
aclsfalse, trueOpcionalEspecifica si los permisos del usuario autenticado se devuelven en cada biblioteca.

Método GET

A continuación se incluye una solicitud de muestra y su correspondiente respuesta (ver Listado 13).

Solicitud de muestra:

GET /webcontent/rest/library/7e0bad004a9206d69c88dc23ebd19157/document/
40dc74004c149271bc3cfdaa37d7846a/comment/55eeec804c1492ddbc44fdaa37d7846a/entry HTTP/1.1

Listado 13. Respuesta de muestra
 <?xml version="1.0" encoding="UTF-8" ?> 
<entry xmlns="http://www.w3.org/2005/Atom" xmlns:td="urn:ibm.com/td">
  <id>urn:lsid:ibm.com:td:55eeec804c1492ddbc44fdaa37d7846a</id> 
  <title type="text">wpsadmin g wpsadmin sn Today at 9:47 AM</title> 
  <published>2008-11-27T01:47:02.109Z</published> 
  <updated>2008-11-27T01:47:02.109Z</updated> 
  <td:modified>2008-11-27T01:47:02.109Z</td:modified> 
  <td:created>2008-11-27T01:47:02.109Z</td:created> 
  <summary type="text">this is the first comment</summary> 
  <td:uuid>55eeec804c1492ddbc44fdaa37d7846a</td:uuid> 
  <author>
    <name>wpsadmin g wpsadmin sn</name> 
    <email>wpsadmin@cn.ibm.com</email> 
   <uri>uid%3Dwpsadmin%2Ccn%3Dusers%2Cl%3Dwestford%2Cst%3Dmassachusetts%2Cc
   %3Dus%2Cou%3Dlotus%2Co%3Dsoftware+group%2Cdc%3Dibm%2Cdc%3Dcom</uri> 
</author>
   <link href="/lotus/poc/?uri=wcm%3a55eeec804c1492ddbc44fdaa37d7846a" rel="alternate" /> 
  <content type="text/html" 
  src="http://lwptsthink43.cn.ibm.com:10038/webcontent/rest/library/
  7e0bad004a9206d69c88dc23ebd19157/document/766a77004c1492dcbc3efdaa37d7846a/comment/
  55eeec804c1492ddbc44fdaa37d7846a/media" /> 
   <category scheme="tag:ibm.com,2006:td/" label="comment" term="comment" /> 
  <link href="http://lwptsthink43.cn.ibm.com:10038/webcontent/rest/library/
  7e0bad004a9206d69c88dc23ebd19157/document/766a77004c1492dcbc3efdaa37d7846a/comment/
  55eeec804c1492ddbc44fdaa37d7846a/entry" rel="self" /> 
  <link href="http://lwptsthink43.cn.ibm.com:10038/webcontent/rest/library/
  7e0bad004a9206d69c88dc23ebd19157/document/766a77004c1492dcbc3efdaa37d7846a/
  comment/55eeec804c1492ddbc44fdaa37d7846a/entry" rel="edit" /> 
 </entry>

Método PUT

A continuación se incluye una solicitud de muestra y su correspondiente respuesta (ver Listados 14 y 15, respectivamente).

Listado 14. Solicitud de muestra
PUT /webcontent/rest/library/7e0bad004a9206d69c88dc23ebd19157/document/
40dc74004c149271bc3cfdaa37d7846a/comment/55eeec804c1492ddbc44fdaa37d7846a/entry HTTP/1.1
Host: lwptsthink43.cn.ibm.com
Content-Length: nnnn
Authorization: Basic ...
<entry xmlns="http://www.w3.org/2005/Atom">
   <content type="html"><p><b> </b>
   &nbsp;&nbsp;Programmatically Updated entry.</p>
   </content>
   <title type="text">Test Entry Title-Updated
   </title>
   <summary type="text">Summary for Test Entry Ttile-Updated
   </summary>
</entry>
Listado 15. Respuesta de muestra
HTTP/1.1 200 OK
Date: Fri, 13 Apr 2007 17:17:11 GMT
Content-Length: nnn
Content-Type: application/atom+xml; charset="utf-8"
Location: http://lwptsthink43.cn.ibm.com:10038/webcontent/rest/library/
6b1fc9804a9207249ceadc23ebd19157/document/014241804c149b27bc52fdaa37d7846a/entry
<entry xmlns="http://www.w3.org/2005/Atom" xmlns:td="urn:ibm.com/td">
  <id>urn:lsid:ibm.com:td:014241804c149b27bc52fdaa37d7846a</id>
  <title type="text">API_Automation_Test:Test Entry - Thu Nov 27 10:07:28 
  CST 2008</title>
  <published>2008-11-27T02:02:13.375Z</published>
  <updated>2008-11-27T02:02:13.812Z</updated>
  <td:modified>2008-11-27T02:02:13.812Z</td:modified>
  <td:created>2008-11-27T02:02:13.375Z</td:created>
  <summary type="text">Summary for: API_Automation_Test:Test Entry - 
  Thu Nov 27 10:07:28 CST 2008</summary>
  <td:uuid>014241804c149b27bc52fdaa37d7846a</td:uuid>
  <author>
    <name>wpsadmin g wpsadmin sn</name>
    <email>wpsadmin@cn.ibm.com</email>
    <uri>uid%3Dwpsadmin%2Ccn%3Dusers%2Cl%3Dwestford%2Cst%3Dmassachusetts%2Cc
    %3Dus%2Cou%3Dlotus%2Co%3Dsoftware+group%2Cdc%3Dibm%2Cdc%3Dcom</uri>
  </author>
  <link href="/lotus/poc/?uri=wcm%3a014241804c149b27bc52fdaa37d7846a" 
  rel="alternate"></link>
  <content type="text/html" src="http://lwptsthink43.cn.ibm.com:10038/webcontent/
  rest/library/6b1fc9804a9207249ceadc23ebd19157/document/
  014241804c149b27bc52fdaa37d7846a/media"></content>
  <category scheme="tag:ibm.com,2006:td/" label="document" 
  term="document"></category>
  <category scheme="tag:ibm.com,2006:td/" label="page" 
  term="page"></category>
  <link href="http://lwptsthink43.cn.ibm.com:10038/webcontent/rest/library/
  6b1fc9804a9207249ceadc23ebd19157/document/014241804c149b27bc52fdaa37d7846a/entry" 
  rel="self"></link>
  <link href="http://lwptsthink43.cn.ibm.com:10038/webcontent/rest/library/
  6b1fc9804a9207249ceadc23ebd19157/document/014241804c149b27bc52fdaa37d7846a/entry" 
  rel="edit"></link>
  <link href="http://lwptsthink43.cn.ibm.com:10038/webcontent/rest/library/
  6b1fc9804a9207249ceadc23ebd19157/document/014241804c149b27bc52fdaa37d7846a/feed" 
  rel="replies"></link>
</entry>

Método DELETE

A continuación se incluye una solicitud de muestra y su correspondiente respuesta.

Solicitud de muestra:

Delete /webcontent/rest/library/7e0bad004a9206d69c88dc23ebd19157/document/
40dc74004c149271bc3cfdaa37d7846a/comment/55eeec804c1492ddbc44fdaa37d7846a/entry HTTP/1.1
Host: lwptsthink43.cn.ibm.com
Authorization: Basic ...

Respuesta de muestra:

HTTP/1.1 200 OK
Date: Fri, 13 Apr 2007 17:17:11 GMT


Consumo de los servicios en la práctica

En esta sección se presentan ejemplos reales que explican cómo listar entradas de blog en una biblioteca blog, cómo crear una entrada de blog y cómo agregar un comentario de entrada de blog.

En el ejemplo se usa Apache Abdera para la publicación de Atom y el análisis de respuestas. Para más detalles, consulte el artículo de developerWorks®, "Getting to know the Atom Publishing Protocol, Part 3: Introducing the Apache Abdera project."

Listar entradas de blog en una biblioteca blog

Como se explicó anteriormente, para colocar las entradas de blog en una biblioteca blog, se deberá enviar una solicitud de “get” a la URL
https://localhost:10038/webcontent/rest/library/7e0bad004a9206d69c88dc23ebd19157/feed, como muestra el fragmento de código del Listado 16.

Listado 16. Solicitud de “get”
public void getLibraryFeed() throws Exception
  {
    String url = “https://localhost:10038/webcontent/rest/
library/7e0bad004a9206d69c88dc23ebd19157/feed”;
	//create an abdera client
	CommonsClient client = new CommonsClient();
Credentials creds = new UsernamePasswordCredentials(“mshani”, “password”);
    client.addCredentials(url, null, null, creds);
client.usePreemptiveAuthentication(true);

//Send the Getting request
    ClientRespone response = client.get(url);
    Element blogElement = response.getDocument().getRoot();
    releaseResponse();
    Feed blogFeed = (Feed) blogElement;
    List list = blogFeed.getEntries();
    Iterator iter = list.iterator();
    while (iter.hasNext())
{
  //Every entry means a blog entry 
      Entry entry = iter.next();
      //Get the blog entry’s infromation
	  String title = entry.getTitle();
	  String summary = entry.getSummary();
      String author = entry.getAuthor().getName();
	  //Render the blog entry’s title, summary and name to the User Interface.
      ………… 
      …………
    }
  }
Figura 1. Entrada de blog agregada a la biblioteca blog
Entrada de blog agregada a la biblioteca blog

Crear una nueva entrada de blog

Para crear una entrada de blog, deberá enviar una solicitud HTTP POST hacia la URL de fuente de biblioteca:
http://localhost:10038/webcontent/rest/library/7e0bad004a9206d69c88dc23ebd19157/feed, como muestra el fragmento de código del Listado 17.

Listado 17. Solicitud HTTP POST
public String createBlogEntry() throws Exception
  {
     String url = “https://localhost:10038/webcontent/rest/
library/7e0bad004a9206d69c88dc23ebd19157/feed”;
	//create an abdera client
	CommonsClient client = new CommonsClient();
Credentials creds = new UsernamePasswordCredentials(“mshani”, “password”);
    client.addCredentials(url, null, null, creds);
client.usePreemptiveAuthentication(true);

//Create an posted abdera entry
	Entry blogEntry = Abdera.getNewFactory.newEntry();
    //set the blog entry title    
    blogEntry.setTitle("IntroDucing REST based services for wiki and blog content");
String summary = "<p><b>Learn how to create web content using REST based 
services</b></p>”;
//set the blog entry summary
blogEntry.setContentAsHtml(summary);

//Send the POST request
    ClientRespone response = client.post(url, blogEntry);
    Element blogElement = response.getDocument().getRoot();
    releaseResponse();
Entry entry = (Entry) blogElement;
QName QNAME_UUID = new QName("urn:ibm.com/td", ”uuid”, “td”);
String blogEntryUUID = entry.getSimpleExtension(QNAME_UUID);
    
    return  blogEntryUUID;
  }

De esta manera, se crea con éxito una entrada de blog (ver Figura 2).

Figura 2. Nueva entrada de blog
Nueva entrada de blog

Agregar un comentario de la entrada de blog

Para agregar un comentario de entrada de blog, se deberá registrar una entrada de comentario en la fuente de entrada de blog. La URL registrada deberá ser como la siguiente:

http://localost:10038/webcontent/rest/library/12c41d804d2f16e9af42efa98d8a5f1c/
document/704e15004d2f7c5baf76efa98d8a5f1c/feed

y el fragmento de código será como el mostrado en el Listado 18.

Listado 18. Registrar una entrada de comentario en la fuente de blog
public String createBlogEntry() throws Exception
  {
     String url = “http://localost:10038/webcontent/rest/library/
     12c41d804d2f16e9af42efa98d8a5f1c/document/704e15004d2f7c5baf76efa98d8a5f1c/feed”;
	//create an abdera client
	CommonsClient client = new CommonsClient();
Credentials creds = new UsernamePasswordCredentials(“mshani”, “password”);
    client.addCredentials(url, null, null, creds);
client.usePreemptiveAuthentication(true);

//Create an posted abdera entry
	Entry commentEntry = Abdera.getNewFactory.newEntry();
    //set the comment entry title    
    String summary = &quot;&lt;p&gt;&lt;b&gt;This is a good article which is 
    worthy to read</b></p>”;
//set the blog entry summary
commentEntry.setContentAsHtml(summary);
//Set the entry category
	Category category = factory.newCategory();
    category.setScheme("tag:ibgm.com,2006:td/type");
    category.setTerm("comment");
commentEntry.addCategory(category);

//Send the POST request
    ClientRespone response = client.post(url, commentEntry);
    Element commentElement = response.getDocument().getRoot();
    releaseResponse();
Entry entry = (Entry) commentElement;
QName QNAME_UUID = new QName("urn:ibm.com/td", ”uuid”, “td”);
String commentUUID = entry.getSimpleExtension(QNAME_UUID);
    
    return  commentUUID;
  }

De esta manera, se crea un comentario de entrada de blog como se muestra en la Figura 3.

Figura 3. Comentario de entrada de blog
Comentario de entrada de blog

En esta sección hemos mostrado ejemplos concretos de cómo registrar entradas de blog en una biblioteca blog, cómo crear una entrada de blog y cómo comentar sobre una entrada de blog. Los procedimientos a seguir para realizar otras operaciones, como actualizar o eliminar una entrada de blog, o actualizar o eliminar un comentario de entrada de blog, son muy similares a los de las tres operaciones explicadas.


Conclusión

Los servicios basados en REST de Lotus Quickr para contenidos wiki y blog proporcionan una forma cómoda y robusta de acceder a contenidos Web en Lotus Quickr para el portal WebSphere. Los usuarios pueden obtener toda la información disponible en las bibliotecas wiki y blog así como también crear, actualizar, y eliminar una página wiki o un mensaje blog especificado y realizar operaciones CRUD de un comentario especificado.

Con la ayuda de estos servicios, los usuarios pueden personalizar sus presentaciones de contenidos Web. Además, estos servicios se alinean con el formato de los servicios de documentos basados en REST de Lotus Quickr, lo que facilita su compresión y uso.

Recursos

Aprender

Obtener los productos y tecnologías

Comentar

Comentarios

developerWorks: Ingrese

Los campos obligatorios están marcados con un asterisco (*).


¿Necesita un IBM ID?
¿Olvidó su IBM ID?


¿Olvidó su Password?
Cambie su Password

Al hacer clic en Enviar, usted está de acuerdo con los términos y condiciones de developerWorks.

 


La primera vez que inicie sesión en developerWorks, se creará un perfil para usted. La información en su propio perfil (nombre, país/región y nombre de la empresa) se muestra al público y acompañará a cualquier contenido que publique, a menos que opte por la opción de ocultar el nombre de su empresa. Puede actualizar su cuenta de IBM en cualquier momento.

Toda la información enviada es segura.

Elija su nombre para mostrar



La primera vez que inicia sesión en developerWorks se crea un perfil para usted, teniendo que elegir un nombre para mostrar en el mismo. Este nombre acompañará el contenido que usted publique en developerWorks.

Por favor elija un nombre de 3 - 31 caracteres. Su nombre de usuario debe ser único en la comunidad developerWorks y debe ser distinto a su dirección de email por motivos de privacidad.

Los campos obligatorios están marcados con un asterisco (*).

(Por favor elija un nombre de 3 - 31 caracteres.)

Al hacer clic en Enviar, usted está de acuerdo con los términos y condiciones de developerWorks.

 


Toda la información enviada es segura.


static.content.url=http://www.ibm.com/developerworks/js/artrating/
SITE_ID=90
Zone=Lotus, WebSphere
ArticleID=417825
ArticleTitle=Incorporación de servicios basados en REST para contenidos wiki y blog en servicios IBM Lotus Quickr 8.1.1 para el portal IBM WebSphere
publish-date=07312009