Resultado
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=Count81Obtenga 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
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 /skippuede 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:takeyskiplos parámetros se ignorarán, ya que se recupera el conjunto completo de entidadesresultse 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 necesitaresultorderbyse 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
__idun 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
result y orderby). Está pensado principalmente para utilizarse junto con integraciones externas que requieren la recuperación de grandes cantidades de datos de Targetprocess.access_token parámetro) y autenticación básica.