Resultado

Nota: El resultado siempre está en formato JSON

Llamada por megafonía

Por defecto, el resultado solo contendrá 25 elementos.

Si hay más elementos, verás Next un enlace al principio de tu respuesta:

{
  "next": "https://restapi.tpondemand.com/api/v2/userstories?where=(Effort>0)&take=25&skip=25",
  "items": [
    {"resourceType":"UserStory","id":194,"name":"New Story"},
    {"resourceType":"UserStory","id":182,"name":"Import Tasks from CSV"},
    {"resourceType":"UserStory","id":180,"name":"Highlight important Tasks"},
    {"resourceType":"UserStory","id":178,"name":"Effort for Tasks"},
    {"resourceType":"UserStory","id":177,"name":"Export Tasks into CSV"},
    {"resourceType":"UserStory","id":176,"name":"Add Task"},
    {"resourceType":"UserStory","id":175,"name":"Tag users"},
    {"resourceType":"UserStory","id":174,"name":"ToDo list"},
    {"resourceType":"UserStory","id":171,"name":"Add User"},
    {"resourceType":"UserStory","id":166,"name":"Prototype"},
    {"resourceType":"UserStory","id":165,"name":"Delete Task"},
    {"resourceType":"UserStory","id":164,"name":"Email settings"},
    {"resourceType":"UserStory","id":162,"name":"Print Tasks"},
    {"resourceType":"UserStory","id":161,"name":"Create tasks from new email"},
    {"resourceType":"UserStory","id":160,"name":"Email plugin"},
    {"resourceType":"UserStory","id":159,"name":"Basic REST API"},
    {"resourceType":"UserStory","id":156,"name":"Advanced REST API"},
    {"resourceType":"UserStory","id":155,"name":"Facebook integration"},
    {"resourceType":"UserStory","id":154,"name":"G+ integration"},
    {"resourceType":"UserStory","id":153,"name":"Integrate social media"},
    {"resourceType":"UserStory","id":152,"name":"Create custom Theme"},
    {"resourceType":"UserStory","id":151,"name":"Install Wordpress on production server"},
    {"resourceType":"UserStory","id":142,"name":"Create custom Theme for blog"},
    {"resourceType":"UserStory","id":141,"name":"Install Wordpress for blogs"},
    {"resourceType":"UserStory","id":140,"name":"Prepare Server-Side integration"}
  ]
}
El tamaño de la página se controla con take el parámetro. El tamaño máximo de la página es 1000: /api/v2/userstories?where=(Effort>0)&take=1000 Si necesita extraer más de 1000 elementos, tendrá que utilizar la paginación y recorrer todas las páginas de la respuesta utilizando los parámetros takeskip y :
Page 1:
/api/v2/userstories?where=(Effort>0)&prettify&take=1000

Page 2:
/api/v2/userstories?where=(Effort>0)&prettify&take=1000&skip=1000

Page 3:
/api/v2/userstories?where=(Effort>0)&prettify&take=1000&skip=2000

Agregación

Es posible utilizar las siguientes agregaciones en la colección raíz:
  • recuento
  • suma
  • promedio
  • mín.
  • máx

Por ejemplo, obtener el recuento de todas las historias de usuario:

/api/v2/userstory?result=Count
81
Obtenga la suma, el promedio, el mínimo y el máximo de esfuerzos de todas las historias de usuario: /api/v2/userstory?result={sum:sum(effort),average:average(effort),min:min(effort),max:max(effort)}
{
  "sum": 798.0000,
  "average": 9.851851,
  "min": 0.0000,
  "max": 27.0000
}
Obtener la suma del esfuerzo de todas las historias de usuario que tienen tareas: /api/v2/userstory?where=(Tasks.count!=0)&result=sum(effort)
70.0000
Nota: La API v2 utiliza un analizador de expresiones LINQ cuya sintaxis es muy similar a la sintaxis estándar de.NET

Modalidad continua

El uso de paginación para recuperar grandes cantidades de entidades presenta varias desventajas:
  • Como se ha mencionado anteriormente, existe un límite estricto de 1000 entidades por página
  • Si tiene que utilizar varias solicitudes para recuperar entidades de forma continua, es posible que vea resultados faltantes o duplicados si se crearon o eliminaron entidades entre las solicitudes de página
  • El uso takede /skip puede impedirnos utilizar algunas optimizaciones de rendimiento internas.

En los casos en los que necesite recuperar todo el conjunto de entidades de Targetprocess (por ejemplo, con fines de integración externa), es posible utilizar la API del servicio de streaming.

La API de streaming realiza solicitudes paginadas en segundo plano, y los elementos resultantes se añaden a la respuesta JSON tan pronto como se recuperan de Targetprocess. Esto significa que puede utilizar esta API para implementar la transmisión JSON y comenzar a procesar los resultados a medida que llegan, antes de que la solicitud se haya ejecutado por completo.

Las solicitudes del servicio de streaming utilizan un punto final base diferente:

/svc/tp-apiv2-streaming-service/stream/userstory?where=(Effort>0)
La API en sí misma es en gran medida compatible con APIv2, es decir, es posible especificar el tipo de entidad, <codeph>select</codeph>, <codeph>filter</codeph> y/o <codeph>where</codeph>, pero hay algunas diferencias:
  • take y skip los parámetros se ignorarán, ya que se recupera el conjunto completo de entidades
  • result se ignora: las agregaciones se gestionan en APIv2 en todo el conjunto de datos y no se ven afectadas por la paginación, por lo que puede utilizar solicitudes APIv2 normales si lo necesita result
  • orderby se ignora: todas las entidades se ordenan siempre por ID de entidad, lo que nos ayuda a optimizar la transmisión y garantizar que no haya resultados duplicados ni faltantes como resultado de modificaciones que se producen en paralelo
  • Todas las entidades recuperadas también incluirán __id un campo que contiene el ID de la entidad; puede ignorarlo sin problema al procesar los resultados.
  • Hay un límite de velocidad de un máximo de 10 solicitudes simultáneas por cuenta
Nota: Al igual que APIv2 y APIv1, Streaming no está pensado para sustituir a APIv2 (sobre todo porque no es compatible con todas las funciones, como result y orderby). Está pensado principalmente para utilizarse junto con integraciones externas que requieren la recuperación de grandes cantidades de datos de Targetprocess.
Advertencia: Nota sobre la autenticación La API de streaming admite tokens de acceso (es decir, URLaccess_token parámetro) y autenticación básica.