Skip to content

Commit 365d701

Browse files
authored
Merge pull request #51 from ni/users/alweaver/advanced-query-api-review
API Review - Test Monitor Advanced Query Language
2 parents a7f2d80 + 4c198d2 commit 365d701

File tree

1 file changed

+146
-22
lines changed

1 file changed

+146
-22
lines changed

test-monitor/nitestmonitor.yml

Lines changed: 146 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -632,6 +632,26 @@ definitions:
632632
type: array
633633
items:
634634
$ref: '#/definitions/ResultSortDefinitionObject'
635+
AdvancedQuery:
636+
title: Advanced Query Object for Test Data
637+
type: object
638+
properties:
639+
filter:
640+
description: The query filter, in Dynamic Linq
641+
type: string
642+
example: (operator == "user1") || ((programName != "MyProgram") && (totalTimeInSeconds < @0))
643+
substitutions:
644+
description: >-
645+
Makes substitutions in the query filter expression. Substitutions for the query expression
646+
are indicated by non-negative integers that are prefixed with the "at" symbol. Each
647+
substitution in the given expression will be replaced by the element at the corresponding
648+
index (zero-based) in this list. For example, "@0" in the filter expression will be replaced with
649+
the element at the zeroth index of the substitutions list.
650+
type: array
651+
items:
652+
type: object
653+
example:
654+
- 2.5
635655
StepIdResultIdPair:
636656
title: Step Id / Result Id Pair
637657
type: object
@@ -1150,48 +1170,61 @@ paths:
11501170
description: Not Found
11511171
schema:
11521172
$ref: '#/definitions/Error'
1153-
/v1/query-results:
1173+
/v2/query-results:
11541174
post:
11551175
tags: [results]
1156-
summary: Queries test results
1157-
description: Uses input criteria to filter and return test results. An empty request body queries all test results.
1158-
operationId: query-results
1176+
summary: Advanced Test Result Query
1177+
description: >-
1178+
Uses the Dynamic Linq query language to specify a filter and return
1179+
test results. An empty request body queries all test results.
1180+
operationId: query-results-v2
11591181
x-ni-operation: queryResults
11601182
x-ni-privilege: Read
11611183
parameters:
11621184
- in: body
11631185
name: postBody
1164-
description: Result query object
1186+
description: Query filter
11651187
required: false
11661188
schema:
1167-
$ref: '#/definitions/TestResultQueryObject'
1189+
$ref: '#/definitions/AdvancedQuery'
11681190
- in: query
11691191
name: skip
1192+
description: >-
1193+
The number of matching results to skip when querying.
1194+
For example, if the query filter matches 100 results with a skip
1195+
value of 50 and a take value of 25, results 51 through 75 will be
1196+
returned.
11701197
type: integer
11711198
format: int32
11721199
default: 0
11731200
minimum: 0
11741201
- in: query
11751202
name: take
1203+
description: >-
1204+
The total number of results to return.
1205+
For example, if the query filter matches 100 results with a skip
1206+
value of 50 and a take value of 25, results 51 through 75 will be
1207+
returned.
11761208
type: integer
11771209
format: int32
1178-
default: -1
1179-
minimum: -1
1210+
default: 1000
1211+
minimum: 0
11801212
responses:
11811213
200:
11821214
$ref: '#/responses/ResultsQueryResponse'
11831215
401:
11841216
$ref: '#/responses/Unauthorized'
11851217
default:
11861218
$ref: '#/responses/Error'
1187-
/v1/results:
1219+
/v2/results:
11881220
get:
11891221
tags: [results]
11901222
summary: Gets test results
11911223
description: Gets a list of test results.
11921224
operationId: get-results
11931225
x-ni-operation: getResults
11941226
x-ni-privilege: Read
1227+
x-ni-oldest-compatible-version: 1
11951228
parameters:
11961229
- in: query
11971230
name: skip
@@ -1219,6 +1252,7 @@ paths:
12191252
operationId: update-results
12201253
x-ni-operation: updateResults
12211254
x-ni-privilege: Write
1255+
x-ni-oldest-compatible-version: 1
12221256
parameters:
12231257
- in: body
12241258
name: requestBody
@@ -1258,6 +1292,7 @@ paths:
12581292
operationId: create-results
12591293
x-ni-operation: createResults
12601294
x-ni-privilege: Write
1295+
x-ni-oldest-compatible-version: 1
12611296
parameters:
12621297
- in: body
12631298
name: requestBody
@@ -1284,14 +1319,15 @@ paths:
12841319
$ref: '#/responses/Unauthorized'
12851320
default:
12861321
$ref: '#/responses/Error'
1287-
/v1/results/{resultId}:
1322+
/v2/results/{resultId}:
12881323
delete:
12891324
tags: [results]
12901325
summary: Deletes a test result
12911326
description: Deletes the test result with the specified id. The request succeeds for result ids that do not exist.
12921327
operationId: DeleteResult
12931328
x-ni-operation: deleteResult
12941329
x-ni-privilege: Write
1330+
x-ni-oldest-compatible-version: 1
12951331
parameters:
12961332
- in: path
12971333
name: resultId
@@ -1310,14 +1346,15 @@ paths:
13101346
$ref: '#/responses/Unauthorized'
13111347
default:
13121348
$ref: '#/responses/Error'
1313-
/v1/delete-results:
1349+
/v2/delete-results:
13141350
post:
13151351
tags: [results]
13161352
summary: Deletes test results
13171353
description: Deletes multiple test results in a single request.
13181354
operationId: delete-results
13191355
x-ni-operation: deleteResults
13201356
x-ni-privilege: Write
1357+
x-ni-oldest-compatible-version: 1
13211358
parameters:
13221359
- in: body
13231360
name: requestBody
@@ -1349,48 +1386,61 @@ paths:
13491386
$ref: '#/responses/Unauthorized'
13501387
default:
13511388
$ref: '#/responses/Error'
1352-
/v1/query-steps:
1389+
/v2/query-steps:
13531390
post:
13541391
tags: [steps]
1355-
summary: Queries test steps
1356-
description: Uses input criteria to filter and return test steps. An empty request body queries all test steps.
1357-
operationId: query-steps
1392+
summary: Advanced Test Step Query
1393+
description: >-
1394+
Uses the Dynamic Linq query language to specify a filter and return
1395+
test steps. An empty request body queries all test steps.
1396+
operationId: query-steps-v2
13581397
x-ni-operation: querySteps
13591398
x-ni-privilege: Read
13601399
parameters:
13611400
- in: body
13621401
name: postBody
1363-
description: Step query object
1402+
description: Query filter
13641403
required: false
13651404
schema:
1366-
$ref: '#/definitions/TestStepQueryObject'
1405+
$ref: '#/definitions/AdvancedQuery'
13671406
- in: query
13681407
name: skip
1408+
description: >-
1409+
The number of matching steps to skip when querying.
1410+
For example, if the query filter matches 100 steps with a skip
1411+
value of 50 and a take value of 25, steps 51 through 75 will be
1412+
returned.
13691413
type: integer
13701414
format: int32
13711415
default: 0
13721416
minimum: 0
13731417
- in: query
13741418
name: take
1419+
description: >-
1420+
The total number of steps to return.
1421+
For example, if the query filter matches 100 steps with a skip
1422+
value of 50 and a take value of 25, steps 51 through 75 will be
1423+
returned.
13751424
type: integer
13761425
format: int32
1377-
default: -1
1378-
minimum: -1
1426+
default: 1000
1427+
minimum: 0
13791428
responses:
13801429
200:
13811430
$ref: '#/responses/StepsQueryResponse'
13821431
401:
13831432
$ref: '#/responses/Unauthorized'
13841433
default:
13851434
$ref: '#/responses/Error'
1386-
/v1/steps:
1435+
/v2/steps:
13871436
get:
13881437
tags: [steps]
13891438
summary: Gets test steps
13901439
description: Gets a list of test steps.
13911440
operationId: get-steps
13921441
x-ni-operation: getSteps
13931442
x-ni-privilege: Read
1443+
x-ni-oldest-compatible-version: 1
13941444
parameters:
13951445
- in: query
13961446
name: skip
@@ -1418,6 +1468,7 @@ paths:
14181468
operationId: update-steps
14191469
x-ni-operation: updateSteps
14201470
x-ni-privilege: Write
1471+
x-ni-oldest-compatible-version: 1
14211472
parameters:
14221473
- in: body
14231474
name: requestBody
@@ -1444,6 +1495,7 @@ paths:
14441495
operationId: create-steps
14451496
x-ni-operation: createSteps
14461497
x-ni-privilege: Write
1498+
x-ni-oldest-compatible-version: 1
14471499
parameters:
14481500
- in: body
14491501
name: requestBody
@@ -1465,14 +1517,15 @@ paths:
14651517
$ref: '#/responses/Unauthorized'
14661518
default:
14671519
$ref: '#/responses/Error'
1468-
/v1/results/{resultId}/steps/{stepId}:
1520+
/v2/results/{resultId}/steps/{stepId}:
14691521
delete:
14701522
tags: [steps]
14711523
summary: Deletes a test step
14721524
description: Deletes the test step with the specified id. The request succeeds for step ids that do not exist.
14731525
operationId: DeleteStep
14741526
x-ni-operation: deleteStep
14751527
x-ni-privilege: Write
1528+
x-ni-oldest-compatible-version: 1
14761529
parameters:
14771530
- in: path
14781531
name: resultId
@@ -1496,14 +1549,15 @@ paths:
14961549
$ref: '#/responses/Unauthorized'
14971550
default:
14981551
$ref: '#/responses/Error'
1499-
/v1/delete-steps:
1552+
/v2/delete-steps:
15001553
post:
15011554
tags: [steps]
15021555
summary: Deletes test steps
15031556
description: Deletes multiple test steps in a single request.
15041557
operationId: delete-steps
15051558
x-ni-operation: deleteSteps
15061559
x-ni-privilege: Write
1560+
x-ni-oldest-compatible-version: 1
15071561
parameters:
15081562
- in: body
15091563
name: requestBody
@@ -1540,3 +1594,73 @@ paths:
15401594
$ref: '#/responses/Unauthorized'
15411595
default:
15421596
$ref: '#/responses/Error'
1597+
/v1/query-results:
1598+
post:
1599+
tags: [deprecated]
1600+
summary: Queries test results
1601+
description: Uses input criteria to filter and return test results. An empty request body queries all test results.
1602+
operationId: query-results
1603+
x-ni-operation: queryResults
1604+
x-ni-privilege: Read
1605+
deprecated: true
1606+
parameters:
1607+
- in: body
1608+
name: postBody
1609+
description: Result query object
1610+
required: false
1611+
schema:
1612+
$ref: '#/definitions/TestResultQueryObject'
1613+
- in: query
1614+
name: skip
1615+
type: integer
1616+
format: int32
1617+
default: 0
1618+
minimum: 0
1619+
- in: query
1620+
name: take
1621+
type: integer
1622+
format: int32
1623+
default: -1
1624+
minimum: -1
1625+
responses:
1626+
200:
1627+
$ref: '#/responses/ResultsQueryResponse'
1628+
401:
1629+
$ref: '#/responses/Unauthorized'
1630+
default:
1631+
$ref: '#/responses/Error'
1632+
/v1/query-steps:
1633+
post:
1634+
tags: [deprecated]
1635+
summary: Queries test steps
1636+
description: Uses input criteria to filter and return test steps. An empty request body queries all test steps.
1637+
operationId: query-steps
1638+
x-ni-operation: querySteps
1639+
x-ni-privilege: Read
1640+
deprecated: true
1641+
parameters:
1642+
- in: body
1643+
name: postBody
1644+
description: Step query object
1645+
required: false
1646+
schema:
1647+
$ref: '#/definitions/TestStepQueryObject'
1648+
- in: query
1649+
name: skip
1650+
type: integer
1651+
format: int32
1652+
default: 0
1653+
minimum: 0
1654+
- in: query
1655+
name: take
1656+
type: integer
1657+
format: int32
1658+
default: -1
1659+
minimum: -1
1660+
responses:
1661+
200:
1662+
$ref: '#/responses/StepsQueryResponse'
1663+
401:
1664+
$ref: '#/responses/Unauthorized'
1665+
default:
1666+
$ref: '#/responses/Error'

0 commit comments

Comments
 (0)