Udostępnij za pośrednictwem


Definiowanie podstawowych zapytań przy użyciu usługi OData Analytics

Azure DevOps Services | Azure DevOps Server 2022 — Azure DevOps Server 2019

Korzystając z analizy dla usługi Azure DevOps, można tworzyć podstawowe i filtrowane zapytania, aby zwracać interesujące dane. Te zapytania można uruchamiać bezpośrednio w przeglądarce lub w usłudze Power BI.

Ten artykuł zawiera informacje zawarte w artykule Tworzenie zapytań OData na potrzeby analizy i dokumentacji metadanych dla usługi Azure Boards Analytics. Ponadto zapytania w tym artykule koncentrują się na pobieraniu zestawów jednostek śledzenia pracy, jednak zasady mają zastosowanie do wykonywania zapytań dotyczących innych zestawów jednostek.

W tym artykule dowiesz się, jak definiować zapytania zwracające następujące dane:

  • Liczba elementów (brak innych danych)
  • Liczba elementów i danych
  • Właściwości zdefiniowane dla obszarów lub ścieżek iteracji
  • Wybrane kolumny lub pola
  • Przefiltrowane dane
  • Zwracanie danych dla pól Tożsamość, Ścieżka obszaru i Ścieżka iteracji
  • Filtrowanie według właściwości nawigacji
  • Wykonywanie zapytań względem zakresu dat
  • Zagnieżdżanie instrukcji expand
  • Sortuj wyniki, opcję orderby

Uwaga

Usługa Analytics jest automatycznie włączona i obsługiwana w środowisku produkcyjnym dla wszystkich usług Azure DevOps Services. Integracja usługi Power BI i dostęp do źródła danych OData usługi Analytics są ogólnie dostępne. Zachęcamy do korzystania z niego i przekazywania opinii. Dostępne dane są zależne od wersji. Najnowsza obsługiwana wersja to v2.0, a najnowsza wersja zapoznawcza to v4.0-preview. Aby uzyskać więcej informacji, zobacz Przechowywanie wersji interfejsu API OData.

Uwaga

Usługa Analytics jest automatycznie instalowana i obsługiwana w środowisku produkcyjnym dla wszystkich nowych kolekcji projektów dla usługi Azure DevOps Server 2020 i nowszych wersji. Integracja usługi Power BI i dostęp do źródła danych OData usługi Analytics są ogólnie dostępne. Zachęcamy do korzystania z niego i przekazywania opinii. W przypadku uaktualnienia z usługi Azure DevOps Server 2019 możesz zainstalować usługę Analytics podczas uaktualniania.

Dostępne dane są zależne od wersji. Najnowsza obsługiwana wersja to v2.0, a najnowsza wersja zapoznawcza to v4.0-preview. Aby uzyskać więcej informacji, zobacz Przechowywanie wersji interfejsu API OData.

Uwaga

Usługa Analytics jest dostępna w wersji zapoznawczej dla usługi Azure DevOps Server 2019. Możesz włączyć lub zainstalować dla kolekcji projektów. Integracja usługi Power BI i dostęp do źródła danych OData usługi Analytics są dostępne w wersji zapoznawczej. Zachęcamy do korzystania z niego i przekazywania opinii.

Dostępne dane są zależne od wersji. Najnowsza obsługiwana wersja to v2.0, a najnowsza wersja zapoznawcza to v4.0-preview. Aby uzyskać więcej informacji, zobacz Przechowywanie wersji interfejsu API OData.

Wymagania wstępne

Uwaga

W tym artykule adres URL zapytania OData jest zdefiniowany dla usług Azure DevOps Services. Aby utworzyć podobne zapytanie dla serwera lokalnego, zapoznaj się ze wskazówkami podanymi w artykule Konstruowanie zapytań OData dla analizy. Zachęcamy do dostosowania zapytań dostarczonych dla twojej organizacji i projektu w celu zapoznania się z wykonywaniem zapytań OData przy użyciu przeglądarki.

Zwracanie liczby elementów (brak innych danych)

Aby dowiedzieć się więcej o liczbie elementów lub jednostek zdefiniowanych w organizacji lub projekcie, określ $apply=aggregate($count as Count) opcję zapytania. Na przykład następujące zapytania zwracają liczbę projektów, elementów roboczych, ścieżek obszaru i użytkowników zdefiniowanych dla organizacji.

https://analytics.dev.azure.com/{OrganizationName}/_odata/v4.0-preview/Projects?$apply=aggregate($count as Count)
https://analytics.dev.azure.com/{OrganizationName}/_odata/v4.0-preview/WorkItems?$apply=aggregate($count as Count)
https://analytics.dev.azure.com/{OrganizationName}/_odata/v4.0-preview/Areas?$apply=aggregate($count as Count)
https://analytics.dev.azure.com/{OrganizationName}/_odata/v4.0-preview/Users?$apply=aggregate($count as Count)

Napiwek

Zapytania między projektami kończą się niepowodzeniem, gdy użytkownik, na którym uruchomiono zapytanie, nie ma dostępu do wszystkich projektów. Przeczytaj więcej na temat wymagań dotyczących zapytań w zakresie projektu i organizacji.

Liczba projektów

@odata.context	"https://analytics.dev.azure.com/fabrikam/_odata/v4.0-preview/$metadata#Projects(Count)"
value	
   0	
     @odata.id	null
     Count	    28

Liczba elementów roboczych

@odata.context	"https://analytics.dev.azure.com/fabrikam/_odata/v4.0-preview/$metadata#WorkItems(Count)"
value	
  0	
     @odata.id	null
     Count	    1166

Liczba obszarów

@odata.context	"https://analytics.dev.azure.com/fabrikam/_odata/v4.0-preview/$metadata#Areas(Count)"
value	
  0	
     @odata.id	null
     Count	    70

Liczba użytkowników

@odata.context	"https://analytics.dev.azure.com/fabrikam/_odata/v4.0-preview/$metadata#Areas(Count)"
value	
  0	
     @odata.id	null
     Count	    16

Zwracanie liczby elementów i danych

Aby zwrócić liczbę elementów wraz z wybranymi danymi dla elementów, określ $count=true opcję zapytania. Na przykład następujące zapytania zwracają liczbę elementów roboczych, ścieżek obszaru i użytkowników zdefiniowanych dla projektu wraz z określonymi właściwościami. Aby uzyskać prawidłowe właściwości, zobacz Dokumentacja metadanych dla usługi Azure Boards Analytics i daty kalendarza, projektu i dokumentacji metadanych użytkownika dla usługi Azure DevOps Analytics.

Napiwek

Jeśli nie określisz właściwości do zwrócenia, analiza zwróci wszystkie właściwości zdefiniowane dla określonego typu jednostki.

https://analytics.dev.azure.com/{OrganizationName}/{ProjectName}/_odata/v4.0-preview/WorkItems?$count=true&$select=WorkItemId,Title,WorkItemType 
https://analytics.dev.azure.com/{OrganizationName}/{ProjectName}/_odata/v4.0-preview/Areas?$count=true&$select=AreaName,AreaPath 
https://analytics.dev.azure.com/{OrganizationName}/{ProjectName}/_odata/v4.0-preview/Users?$count=true&$select=UserName,UserEmail

Właściwości obszarów lub iteracji

Aby wyszukać AreaSK właściwość lub IterationSKlub inną ścieżkę obszaru lub ścieżkę iteracji, użyj następujących zapytań.

Zwracanie obszaruSK dla określonej ścieżki obszaru

Poniższe zapytanie określa, aby zwrócić właściwość zdefiniowaną AreaSK dla ścieżki Fabrikam Fiber\Service Delivery\Internet Area. Aby określić inne właściwości zdefiniowane dla Areas zestawu jednostek, zobacz Dokumentacja metadanych dla usługi Azure Boards Analytics, Obszary.

https://analytics.dev.azure.com/fabrikam/Fabrikam%20Fiber/_odata/v4.0-preview/Areas?$filter=AreaPath eq 'Fabrikam Fiber\Service Delivery\Internet' &$select=AreaSK

Zapytanie zwraca następujące dane.

{
  "@odata.context": "https://analytics.dev.azure.com/fabrikam/Fabrikam%20Fiber/_odata/v4.0-preview/$metadata#Areas(AreaSK)",
  "value": [
    {
      "AreaSK": "637dc203-0549-4415-9663-b6358ac27d21"
    }
  ]
}

Zwracanie iteracjiSK dla określonej ścieżki iteracji

Poniższe zapytanie określa, aby zwrócić właściwość zdefiniowaną IterationSK dla ścieżki iteracji Fabrikam Fiber\Release 1\Sprint 3. Aby określić inne właściwości zdefiniowane dla Iterations zestawu jednostek, zobacz Dokumentacja metadanych dla usługi Azure Boards Analytics, Iteracji.

https://analytics.dev.azure.com/fabrikam/Fabrikam%20Fiber/_odata/v4.0-preview/Iterations?$filter=IterationPath eq 'Fabrikam Fiber\Release 1\Sprint 3' &$select=IterationSK

Zapytanie zwraca następujące dane.

{
  "@odata.context": "https://analytics.dev.azure.com/fabrikam/Fabrikam%20Fiber/_odata/v4.0-preview/$metadata#Iterations(IterationSK)",
  "value": [
    {
      "IterationSK": "862e961a-ac7a-4fcc-9ebc-8afd0c12fed5"
    }
  ]
}

Zwracanie określonych właściwości lub pól

Aby zwrócić określone właściwości lub pola elementu roboczego, dodaj klauzulę określającą $select nazwy właściwości.

Aby na przykład zwrócić identyfikator elementu roboczego, typ elementu roboczego, tytuł i stan elementów roboczych, dodaj następującą klauzulę do zapytania. Ta klauzula określa właściwości, które odpowiadają nazwanym polam.

Uwaga

Nazwy właściwości nie zawierają żadnych spacji. Zapytanie zakończy się niepowodzeniem, jeśli dodasz spacje. Zapytania OData wymagają uwagi na odstępy i wielkość liter. Aby zrozumieć, w jaki sposób właściwości pól niestandardowych są oznaczone, zobacz Dokumentacja metadanych dla usługi Azure Boards, właściwości niestandardowych.

W tym miejscu określimy, aby zwrócić trzy najważniejsze elementy robocze.

https://analytics.dev.azure.com/fabrikam/Fabrikam Fiber/_odata/v4.0-preview/WorkItems?$select=WorkItemId,WorkItemType,Title,State&$top=3

Analiza zwraca następujące dane.

@odata.context	"https://analytics.dev.azure.com/fabrikam/Fabrikam%20Fiber/_odata/v4.0-preview/$metadata#WorkItems(WorkItemId,WorkItemType,Title,State)"
value	
   0	
      WorkItemId    462
      Title         "Test case"
      WorkItemType  "Test Case"
      State         "Design"
   1	
      WorkItemId	   491
      Title          "Change color settings"
      WorkItemType   "Shared Steps"
      State          "Active"
   2	
      WorkItemId	   461
      Title          "Test impediment"
      WorkItemType   "Impediment"
      State          "Open"

.

Filtrowanie danych

Aby filtrować jednostkę ustawioną w celu zwrócenia wybranych elementów, określ klauzulę określającą $filter kryteria, które muszą spełniać elementy. Opierając się na ostatnim zapytaniu, dodamy tutaj klauzulę filtru, aby zwracać tylko typy elementów roboczych funkcji , które znajdują się w stanie W toku .

/WorkItems?$select=WorkItemId,WorkItemType,Title,State&$filter=State eq 'In Progress'

https://analytics.dev.azure.com/fabrikam/Fabrikam Fiber/_odata/v4.0-preview/WorkItems?$filter=WorkItemType eq 'Feature' and State eq 'In Progress'&$select=WorkItemId,Title,AssignedTo,State

Analiza zwraca następujące dane.

  
@odata.context	"https://analytics.dev.azure.com/kelliott/Fabrikam%20Fiber/_odata/v4.0-preview/$metadata#WorkItems(WorkItemId,Title,State)"
value	
  0	
      WorkItemId	380
      Title	"Refresh web look, feel, performance factors"
      State	"In Progress"
  1	
      WorkItemId	480
      Title	"Customer Phone - Phase 1"
      State	"In Progress"
  2	
      WorkItemId	493
      Title	"Change initial view"
      State	"In Progress"
  3	
      WorkItemId	479
      Title	"Customer Web - Phase 1"
      State	"In Progress"
  4	
      WorkItemId	551
      Title	"Mobile feedback"
      State	"In Progress"

Określ kilka klauzul filtru

Można użyć funkcji AND i OR , aby określić kilka klauzul filtru.

Na przykład następujące zapytanie określa, aby zwracać elementy robocze typu Historia użytkownika, Usterka i Praca zaległości (niestandardowy typ elementu roboczego), które znajdują się w stanach Nowy, Zatwierdzony lub Aktywny. Użyj nawiasu, aby grupować klauzule filtru zgodnie z potrzebami.

Ponadto można zastosować różne funkcje, takie jak contains, startswithendswith i inne. Zobacz Obsługiwane funkcje i klauzule OData, Obsługiwane funkcje.

Zwracanie danych dla pól Tożsamość, Ścieżka obszaru i Ścieżka iteracji

Wybierz właściwości są skojarzone z właściwościami nawigacji i nie są bezpośrednio dostępne przy użyciu instrukcji $select . Aby zwrócić interesujące dane, musisz użyć instrukcji $expand . Te właściwości są często kojarzone z kilkoma własnymi właściwościami. Na przykład przy użyciu pól Tożsamość można określić, aby zwrócić nazwę użytkownika lub adres e-mail użytkownika.

W poniższej tabeli przedstawiono przykłady rozwijania kilku z tych właściwości.

Wpisz pola Przywoływna właściwość Przykładowe klauzule do uwzględnienia
DateTime DateSK $expand=CreatedDate($select=Date) lub
$expand=CreatedDate($select=WeekStartingDate)
Tożsamość UserSK $expand=AssignedTo($select=UserName) lub
$expand=AssignedTo($select=UserEmail)
Obszar AreaSK $expand=Area($select=AreaName) lub
$expand=Area($select=AreaPath)
Iteracja IterationSK $expand=Iteration($select=IterationName) lub
$expand=Iteration($select=IterationPath) lub
$expand=Iteration($select=StartDate)
Project ProjectSK $expand=Project($select=ProjectName)
Zespół TeamSK $expand=Teams($select=TeamName)

Aby określić kilka właściwości, które należy rozwinąć, należy określić je w jednej klauzuli rozwijania na liście rozdzielanej przecinkami.

$expand=AssignedTo($select=UserName),Iteration($select=IterationPath),Area($select=AreaPath)

Filtrowanie według właściwości nawigacji

Po określeniu właściwości nawigacji w ramach kryteriów filtrowania należy określić ją w wymaganym formacie.

Na przykład poniższa klauzula określa filtrowanie elementów roboczych na podstawie iteracji 1 zdefiniowanej dla projektu.

/WorkItems?$filter=Iteration/IterationPath eq 'Project Name\Iteration 1'

W tym przykładzie Iteration jest nazwą właściwości nawigacji i IterationPath odpowiada pełnej ścieżce iteracji. Aby użyć innej jednostki jako filtru, umieść właściwość nawigacji, po której następuje ukośnik, a następnie nazwę pola do filtrowania.

Oto pełne zapytanie OData:

https://analytics.dev.azure.com/{OrganizationName}/{ProjectName}/_odata/{version}/WorkItems?$filter=Iteration/IterationPath eq 'Project Name\Iteration 1'

Oto kolejny przykład, który żąda pięciu pierwszych elementów roboczych w obszarze Fabrikam Fiber\Service Delivery\Voice Area Path są zwracane.

https://analytics.dev.azure.com/fabrikam/Fabrikam%20Fiber/_odata/v4.0-preview/WorkItems?$top=5&$filter=Area/AreaPath eq 'Fabrikam Fiber\Service Delivery\Voice'&$select=WorkItemId, WorkItemType, Title, State&$orderby=WorkItemId asc

@odata.context	"https://analytics.dev.azure.com/fabrikam/Fabrikam%20Fiber/_odata/v4.0-preview/$metadata#WorkItems(WorkItemId,WorkItemType,Title,State)"
value	
  0	
     WorkItemId	361
     Title        "Hello World Web Site"
     WorkItemType	"Product Backlog Item"
     State        "Removed"
  1	
     WorkItemId	362
     Title        "Resume"
     WorkItemType	"Product Backlog Item"
     State        "New"
  2	
     WorkItemId	363
     Title        "Welcome back page"
     WorkItemType	"Product Backlog Item"
     State        "Done"
  3	
     WorkItemId	365
     Title        "Pause"
     WorkItemType	"Feature"
     State        "New"
  4	
     WorkItemId	374
     Title        "Fix performance issues"
     WorkItemType	"Task"
     State        "To Do"

Napiwek

Nie można użyć właściwości nawigacji bezpośrednio w instrukcji $select . Zamiast tego należy użyć polecenia $expand.

Poprzedni przykład filtrowania dla ścieżki iteracji nie zwraca ścieżki iteracji, ponieważ znajduje się w powiązanej jednostce. Aby zwrócić dane w powiązanej jednostce, dodaj instrukcję $expand :

/WorkItems?$select=WorkItemId,WorkItemType,Title,State&$filter=WorkItemId eq 10000&$expand=Iteration

Oto przykład, który zwraca informacje przypisane do elementu roboczego o identyfikatorze 480.

https://analytics.dev.azure.com/fabrikam/Fabrikam%20Fiber/_odata/v4.0-preview/WorkItems?$filter=WorkItemId eq 480&$select=WorkItemId,WorkItemType,Title,State&&$expand=Iteration
   
@odata.context	"https://analytics.dev.azure.com/fabrikam/Fabrikam%20Fiber/_odata/v4.0-preview/$metadata#WorkItems(WorkItemId,WorkItemType,Title,State,Iteration)"
value	
  0	
      WorkItemId           480
      Title                "Customer Phone - Phase 1"
      WorkItemType	       "Feature"
      State	               "In Progress"
      Iteration	
          ProjectSK	       "56af920d-393b-4236-9a07-24439ccaa85c"
          IterationSK	       "c7063041-ff3a-4d7f-bb46-c433c7030d59"
          IterationId	       "c7063041-ff3a-4d7f-bb46-c433c7030d59"
          IterationName	   "Sprint 1"
          Number	            55297
          IterationPath	    "Fabrikam Fiber\\Release 1\\Sprint 1"
          StartDate	        "2022-01-17T00:00:00-08:00"
          EndDate	            "2022-02-04T23:59:59.999-08:00"
          IterationLevel1	    "Fabrikam Fiber"
          IterationLevel2	    "Release 1"
          IterationLevel3	    "Sprint 1"
          IterationLevel4	    null
          IterationLevel5	    null
          IterationLevel6	    null
          IterationLevel7	    null
          IterationLevel8	    null
          IterationLevel9	    null
          IterationLevel10	null
          IterationLevel11	null
          IterationLevel12	null
          IterationLevel13	null
          IterationLevel14	null
          Depth	            2
          IsEnded	        	true
      AnalyticsUpdatedDate	"2022-01-18T22:18:58.17Z"

Jak widać, ścieżka iteracji jest rozwinięta w wyniku i zwracane są wszystkie dane iteracji. Prawdopodobnie jest to więcej danych niż chcesz.

Aby zwrócić mniej danych, dodaj również instrukcję $select względem iteracji:

/WorkItems?$select=WorkItemId,WorkItemType,Title,State&$filter=WorkItemId eq 10000&$expand=Iteration($select=Name,IterationPath)

Następnie zwraca następujące dane.

{
  "@odata.context":"https://analytics.dev.azure.com/{OrganizationName}/{ProjectName}/_odata/{version}/$metadata#WorkItems(WorkItemId,WorkItemType,Title,State,Iteration,Iteration(Name,IterationPath))",
  "value":[
    {
      "WorkItemId":10000,
      "WorkItemType":"Task",
      "Title":"Some title",
      "State":"Completed",
      "Iteration":{
        "Name":"Sprint 55",
        "IterationPath":"Fabrikam\\Sprints\\Sprint 55"
      }
    }
  ]
}

Wykonywanie zapytań względem zakresu dat

Poniższy przykład zwraca elementy robocze, których data zmiany jest większa niż równa 1 stycznia 2021 r.

https://analytics.dev.azure.com/{OrganizationName}/{ProjectName}/_odata/{version}/WorkItems?$select=WorkItemId,WorkItemType,Title,State&$filter=ChangedDate ge 2021-01-01Z

Poniższy przykład zwraca elementy robocze, których data zmiany przypada w tygodniu od 26 kwietnia do 30 kwietnia 2021 r.

https://analytics.dev.azure.com{OrganizationName}/{ProjectName}/_odata/{version}/WorkItems?$select=WorkItemId,WorkItemType,Title,State&$filter=ChangedDate ge 2021-04-26Z&ChangedDate le 2021-04-30Z

Zagnieżdżanie instrukcji expand

W usłudze OData można zagnieżdżać $expand instrukcje. Na przykład możesz napisać poprzednią instrukcję zapytania, aby wyświetlić projekt, w którym iteracja jest częścią:

/WorkItems?$filter=WorkItemId eq 10000&$expand=Iteration($expand=Project)

Zwraca on następujący kod JSON:

{
  "@odata.context":"https://analytics.dev.azure.com/{OrganizationName}/{ProjectName}/_odata/{version}/$metadata#WorkItems",
  "value":[
    {
      "WorkItemId":10000,
      "Revision":3,
      "Watermark":283397,
      "Title":"Production deployment and testing for Entitlement API v2 and Subscriber database",
      "WorkItemType":"Task",
      "ChangedDate":"2014-07-10T19:29:58.41Z",
      "CreatedDate":"2014-04-19T22:44:58.31Z",
      "State":"Completed",
      "Reason":"Completed",
      "Priority":2,
      "CompletedWork":10.0,
      "OriginalEstimate":20.0,
      "Count":1,
      "Iteration":{
        "IterationId":"7a2c246e-fc62-41af-ad18-62332017bc46",
        "Name":"Sprint 55",
        "Number":13021,
        "IterationPath":"Fabrikam\\Sprints\\Sprint 55",
        "StartDate":"2013-09-23T00:00:00Z",
        "EndDate":"2013-10-11T00:00:00Z",
        "IterationLevel1":"Fabrikam",
        "IterationLevel2":" Sprints",
        "IterationLevel3":"Sprint 55",
        "Level":2,
        "IsDeleted":false,
        "Project":{
          "ProjectId":"b924d696-3eae-4116-8443-9a18392d8544",
          "ProjectName":"Fabrikam",
          "IsDeleted":false
        }
      }
    }
  ]
}

Można również połączyć $expand instrukcje i $select . Można na przykład zmienić poprzednie zapytanie tak, aby zwracało tylko nazwę iteracji i ścieżkę iteracji:

/WorkItems?$filter=WorkItemId eq 10000&$expand=Iteration($select=IterationId,IterationPath;$expand=Project)

Zwraca on następujący kod JSON:

{
  "@odata.context":"https://analytics.dev.azure.com/{OrganizationName}/{ProjectName}/_odata/{version}/$metadata#WorkItems(Iteration(IterationId,IterationPath,Project))",
  "value":[
    {
      "WorkItemId":10000,
      "Revision":3,
      "Watermark":283397,
      "Title":"Production deployment and testing for Entitlement API v2 and Subscriber database","WorkItemType":"Task",
      "ChangedDate":"2014-07-10T19:29:58.41Z",
      "CreatedDate":"2014-04-19T22:44:58.31Z",
      "State":"Completed",
      "Reason":"Completed",
      "Priority":2,
      "CompletedWork":10.0,
      "OriginalEstimate":20.0,
      "Count":1,
      "Iteration":{
        "IterationId":"7a2c246e-fc62-41af-ad18-62332017bc46","IterationPath":"Fabrikam\\Sprints\\Sprint 55",
        "Project":{
          "ProjectId":"b924d696-3eae-4116-8443-9a18392d8544",
          "ProjectName":"Fabrikam",
          "IsDeleted":false
        }
      }
    }
  ]
}

Zwróć uwagę, że w tym miejscu wynik pokazuje tylko iteracjiId i IterationPath oraz że projekt jest obiektem zagnieżdżonym w wyniku JSON. Innym kluczowym elementem do zanotowania jest sam adres URL. W przypadku używania instrukcji $select i $expand klauzuli należy użyć średnika (;) przed .$expand Wszystkie inne elementy spowodują błąd.

Sortowanie wyników, orderby opcja

Określ opcję sortowania $orderby wyników lub określ sekwencję, w której są zwracane wyniki. Można sortować w kolejności rosnącej lub malejącej przy użyciu słów kluczowych asc lub desc, odpowiednio. Pokazano kilka przykładów

Sortuj według Klauzula do uwzględnienia
Identyfikator elementu roboczego /WorkItems?$orderby=WorkItemId
Identyfikator elementu roboczego malejąco /WorkItems?$orderby=WorkItemId desc
Typ elementu roboczego i stan /WorkItems?$orderby=WorkItemType,State

Następne kroki