Wszystkie strony
Obsługiwane przez GitBook
1 z 3

Loading...

Loading...

Loading...

Dostępne żądania API

Lista żądań REST API Xopero ONE dotyczących operacji backupu, w tym zarządzania repozytoriami, obsługi metadanych oraz synchronizacji organizacji.

REST API Xopero ONE udostępnia kompaktowy zestaw endpointów dla środowisk DevOps (zaimplementowanych metodą POST) do uwierzytelniania użytkowników, przeglądania i zarządzania organizacjami oraz repozytoriami Git, a także automatyzacji operacji backupu, takich jak podłączanie lub odłączanie repozytoriów, inicjowanie synchronizacji oraz sprawdzanie statusu organizacji.


Lista endpointów API

Poniższa tabela przedstawia wszystkie dostępne endpointy API Xopero ONE, wraz z krótkim opisem oraz linkiem do ich pełnej dokumentacji.

Do autoryzacji wszystkich żądań API (z wyjątkiem logowania) należy używać tokena dostępu. Więcej informacji na temat uwierzytelniania w API można znaleźć w .

Metoda HTTP i ścieżka
Opis




POST /account/login

Zaloguj się do Xopero ONE Management Service i uzyskaj token dostępu.

POST /git/organizations/getmany

Wyświetl listę organizacji Git zintegrowanych z Xopero ONE.

POST /plans/listassignedtoorganization

Wyświetl wszystkie plany backupu przypisane do wybranej organizacji Git.

POST /plans/attachgitrepository

Dołącz repozytorium do planu backupu.

POST plans/AttachAzureProject

Dołącz projekt Azure DevOps do planu backupu.

POST /plans/detachgitrepository

Usuń repozytorium z planu backupu.

POST plans/DetachAzureProject

Usuń projekt Azure DevOps z planu backupu.

POST /plans/modifygitplan

Edytuj ustawienia istniejącego planu backupu.

POST plans/ModifyAzurePlanAsync

Edytuj ustawienia istniejącego planu backupu Azure DevOps.

POST /git/repositories/getmany

Pobierz listę repozytoriów wybranej organizacji Git.

POST /git/repositories/activate

Aktywuj licencje dla wybranych repozytoriów.

POST /git/repositories/deactivate

Dezaktywuj licencje wybranych repozytoriów.

POST /git/repositories/remove

Usuń repozytorium z systemu Xopero ONE.

POST /git/repositories/sync

Zsynchronizuj dane wybranej organizacji Git z systemem Xopero ONE.

tym artykule

Konto

POST /account/login

Zaloguj się do Xopero ONE Management Service.

To żądanie zwraca token dostępu, który jest wymagany do wszystkich kolejnych żądań API.

Token dostępu wygenerowany za pomocą żądania logowania POST jest ważny przez 30 dni.

Endpoint API:

POST https://server_address/account/login

Parametry:

Klucz
Wartość (opis)
Typ danych

Przykładowe żądanie:

Przykładowa odpowiedź:

Organizacja

POST /git/organizations/getmany

Pobierz listę organizacji Git.

Endpoint API:

POST https://server_address/git/organizations/getmany

Parametry:

To żądanie API wymaga teraz dodatkowych kluczy: filters, thenOrderBy oraz thenOrderByType. Domyślnie wszystkie z nich powinny zawierać puste wartości, jednak filters może być modyfikowane w zależności od potrzeb.

Klucz
Wartość (opis)
Typ danych

*Każdy obiekt w filters musi zawierać wartości dla trzech właściwości: operator, value oraz property. Obsługiwane wartości dla operator to między innymi: notin, eq, neq, gt,

Przykładowe żądanie:

Przykładowa odpowiedź:

Backup

POST /plans/listassignedtoorganization

Wyświetl wszystkie plany backupu, do których przypisane są repozytoria wybranej organizacji Git.

Endpoint API:

POST https://server_address/plans/listassignedtoorganization

Parametry:

Klucz
Wartość (opis)
Typ danych

Przykładowe żądanie:

Przykładowa odpowiedź:

POST /plans/attachgitrepository

Dodaj repozytorium do planu backupu, pod warunkiem, że zarówno repozytorium, jak i plan już istnieją.

Endpoint API:

POST https://server_address/plans/attachgitrepository

Parametry:

Klucz
Wartość (opis)
Typ danych

*Możesz użyć żądania getMany, aby znaleźć konkretny identyfikator planu kopii zapasowej.

Przykładowe żądanie:

Przykładowa odpowiedź:

POST plans/AttachAzureProject

Dodaj projekt Azure DevOps do planu backupu, pod warunkiem, że zarówno projekt, jak i plan już istnieją.

Działa tylko dla planów z indywidualnym wyborem projektów.

Endpoint API:

POST https://server_address/plans/attachazureproject

Parametry:

Klucz
Wartość (opis)
Typ danych

*Możesz użyć żądania getMany, aby znaleźć konkretny identyfikator planu kopii zapasowej.

Przykładowe żądanie:

Przykładowa odpowiedź:

POST /plans/detachgitrepository

Usuń repozytorium z planu backupu.

Endpoint API:

POST https://server_address/plans/detachgitrepository

Parametry:

Klucz
Wartość (opis)
Typ danych

*Możesz użyć żądania getMany, aby znaleźć konkretny identyfikator planu kopii zapasowej.

Przykładowe żądanie:

Przykładowa odpowiedź:

POST plans/DetachAzureProject

Usuń projekt Azure DevOps z planu backupu.

Działa tylko dla planów z indywidualnym wyborem projektów.

Endpoint API:

POST https://server_address/plans/detachazureproject

Parametry:

Klucz
Wartość (opis)
Typ danych

*Możesz użyć żądania getMany, aby znaleźć konkretny identyfikator planu kopii zapasowej.

Przykładowe żądanie:

Przykładowa odpowiedź:

POST /plans/modifygitplan

Edytuj istniejący plan backupu Git.

Endpoint API:

POST https://server_address/plans/modifygitplan

Parametry:

Klucz
Wartość (opis)
Typ danych

*Możesz użyć żądania getMany, aby znaleźć konkretny identyfikator planu kopii zapasowej.

Przykładowe żądanie:

Przykładowa odpowiedź:

POST plans/ModifyAzurePlanAsync

Edytuj istniejący plan backupu Azure DevOps.

Endpoint API:

POST https://server_address/plans/modifyazureplanasync

Parametry:

Klucz
Wartość (opis)
Typ danych

*Możesz użyć żądania getMany, aby znaleźć konkretny identyfikator planu kopii zapasowej.

Przykładowe żądanie:

Przykładowa odpowiedź:

Repozytorium

POST /git/repositories/getmany

Pobierz listę repozytoriów wybranej organizacji Git.

Endpoint API:

POST https://server_address/git/repositories/getmany

Parametry:

To żądanie API wymaga teraz dodatkowych kluczy: filters, thenOrderBy oraz thenOrderByType. Domyślnie wszystkie z nich powinny zawierać puste wartości, jednak filters może być modyfikowane w zależności od potrzeb.

Klucz
Wartość (opis)
Typ danych

*Każdy obiekt w filters musi zawierać wartości dla trzech właściwości: operator, value oraz property. Obsługiwane wartości dla operator to między innymi: notin, eq, neq, gt,

Przykładowe żądanie:

Przykładowa odpowiedź:

POST /git/repositories/activate

Aktywuj licencje dla wybranych repozytoriów Git.

Autoryzacja wymaga konta użytkownika z jedną z następujących ról: DataRemoveManagement lub GitManagement.

Endpoint API:

POST https://server_address/git/repositories/activate

Parametry:

Klucz
Wartość (opis)
Typ danych

Przykładowe żądanie:

Przykładowa odpowiedź:

POST /git/repositories/deactivate

Dezaktywuj licencje wybranych repozytoriów Git.

Autoryzacja wymaga konta użytkownika z jedną z następujących ról: DataRemoveManagement lub GitManagement.

Endpoint API:

POST https://server_address/git/repositories/deactivate

Parametry:

Klucz
Wartość (opis)
Typ danych

Przykładowe żądanie:

Przykładowa odpowiedź:

POST /git/repositories/remove

Usuń dane repozytorium z systemu Xopero ONE.

Autoryzacja wymaga konta użytkownika z jedną z następujących ról: DataRemoveManagement lub GitManagement.

Endpoint API:

POST https://server_address/git/repositories/remove

Parametry:

Klucz
Wartość (opis)
Typ danych

Przykładowe żądanie:

Przykładowa odpowiedź:

POST /git/repositories/sync

Uruchom synchronizację wybranej organizacji Git.

Endpoint API:

POST https://server_address/git/repositories/sync

Parametry:

Klucz
Wartość (opis)
Typ danych

Przykładowe żądanie:

Przykładowa odpowiedź:

gte
,
lt
,
lte
,
contains
,
icontains
oraz
startswith
.
value
określa wartość używaną do filtrowania w połączeniu z wybraną wartością właściwości
operator
. Dostępne wartości dla
property
zależą od filtrowanego zasobu — w przypadku organizacji, obsługiwane są:
id
,
name
,
displayName
,
driver
,
defaultWorkerId
,
autoAssignLicences
,
syncInterval
,
registrationDate
,
isReadOnly
,
protectedRepositories
,
totalGroups
oraz
totalProjects
.
gte
,
lt
,
lte
,
contains
,
icontains
oraz
startswith
.
value
określa wartość używaną do filtrowania w połączeniu z wybraną wartością właściwości
operator
. Dostępne wartości dla
property
zależą od filtrowanego zasobu — w przypadku repozytoriów, obsługiwane są:
id
,
projectId
,
serverId
,
organizationId
,
name
,
slug
,
project
,
licenceId
,
licenceAssigment
,
Availability
,
isProtected
,
lastBackupDate
,
lastSuccessfulBackupDate
,
nextBackup
,
status
oraz
lastBackupTaskStatus
.

email

Nazwa użytkownika Xopero ONE (adres e-mail).

String

password

Hasło konta Xopero ONE.

String

rememberMe

Określa, czy sesja logowania ma zostać zapamiętana.

Boolean

JSON
{
    "email":"admin@company.com",
   "password":"admin123",
    "rememberMe":true
}
{
 "userId":"a4ac78431-30c2-4d65-bd3e-eb6416784c",     "accessToken":"yMDA1LzA1L2lka4acXR5L2NsYWltcy9uYW1laWRlbnRpZmllciI6ImZiODZiNDMxLTMwYzItNGQ2NS1iZDNlLWViNjQxzL25hbWUiOiJhjm1lbG9uQHhvcGVyby5jb20iLCJodHRwOhjvc2NoZW1hcy54bWxzb2FwLm9yZy93cy8yMDA1LzA1L2lkZW50aXR5L2a4aclbWFpbGFkZHJlc3MiOiJtLm1lbG9uQHhvcGVyby5jb20iLCJodHRwOi8vc2NoZW1hcy5taWNyb3NvZnQuY29tL3dzLzIwMDgvMDYvaWRlbnRpdHkvY2xhaW1zL3JvbGUiOlsiU3l50IiwiVXNlck1hbmFnZW1lbnQiXSwiZXhwIjoxNjU0NjkwNhj4LCJpc3MiOiJodHRa4acxob3N0OjUwMDAiLCJhdWQiOiJodHRwOi8vbG9jYWxob3N0OjUwMDAifQ.eHVRw1KqYi3SOqN-AJUXoEIFKxGVokhoMp910L1LkzA"
}

limit

Liczba repozytoriów na stronę.

Integer

orderby

Określa pole oraz kierunek sortowania zwracanych wyników.

String

ordertype

Określa kolejność sortowania.

String

JSON
{
    "limit": 2,
    "orderby": "Name",
    "ordertype": "asc",
    "thenOrderBy": "",
    "thenOrderByType": "",
    "Page": 2,
    "filters": []
}
{
    "currentPage": 2,
    "pageCount": 2,
    "totalEntries": 4,
    "result": [
        {
            "id": "a4ac2cd0-ed2f-4ced-be39-60c631e033ff",
            "driver": 1,
            "name": "OrgName",
            "apiUrl": null,
            "isReadOnly": false,
            "protectedRepositories": 43,
            "totalRepositories": 58,
            "missingLicences": 58,
            "removedRepositories": 15,
            "defaultWorkerId": "a4ac11eb-bbe7-406e-b3da-24fb4df5642a",
            "isCreatedByMarketplace": false,
            "synchronizationInProgress": false,
            "plans": [
                {
                    "id": "a4acff69-266e-4771-b47b-fd5e4fae6a40",
                    "name": "name1",
                    "backupType": 5,
                    "includeMetadata": true,
                    "repoCount": 1,
                    "lastStatus": {
                        "successes": 0,
                        "warnings": 0,
                        "errors": 1
                    },
                    "planFinishedTime": 1643754961233,
                    "isRunning": false
                },
                {
                    "id": "a4ac8dd-6bf4-4c6c-8bc3-7305a9cc4dad",
                    "name": "name2",
                    "backupType": 5,
                    "includeMetadata": true,
                    "repoCount": 1,
                    "lastStatus": {
                        "successes": 0,
                        "warnings": 0,
                        "errors": 1
                    },
                    "planFinishedTime": 1643754482141,
                    "isRunning": false
                },
                {
                    "id": "a4ac8001-1d3f-45ae-bb7a-49e86286ad6b",
                    "name": "name3",
                    "backupType": 5,
                    "includeMetadata": true,
                    "repoCount": 1,
                    "lastStatus": {
                        "successes": 0,
                        "warnings": 0,
                        "errors": 1
                    },
                    "planFinishedTime": 1643754482453,
                    "isRunning": false
                }
            ]
        },
        {
            "id": "a4ac6bff8-0000-0000-0000-000000000000",
            "driver": 2,
            "name": "xopero",
            "apiUrl": null,
            "isReadOnly": false,
            "protectedRepositories": 1,
            "totalRepositories": 775,
            "missingLicences": 676,
            "removedRepositories": 0,
            "defaultWorkerId": "a4ac0f30-6641-a4ac7-ac26-fd7e47abf8f3",
            "isCreatedByMarketplace": false,
            "synchronizationInProgress": false,
            "plans": [
                {
                    "id": "3a4ac5-fdd1-4a4ac1-9415-66d0fbedb0e0",
                    "name": "name1",
                    "backupType": 5,
                    "includeMetadata": true,
                    "repoCount": 1,
                    "lastStatus": {
                        "successes": 1,
                        "warnings": 0,
                        "errors": 0
                    },
                    "planFinishedTime": 1645136722019,
                    "isRunning": false
                },
                {
                    "id": "a4aca5252-2d02-a4ac-8a24-e2be4598c8ce",
                    "name": "name2",
                    "backupType": 5,
                    "includeMetadata": true,
                    "repoCount": 1,
                    "lastStatus": {
                        "successes": 0,
                        "warnings": 1,
                        "errors": 0
                    },
                    "planFinishedTime": 1645115366992,
                    "isRunning": false
                },
                {
                    "id": "a4acb8c-7b2a-a4ac83-8167-44a9a1e14272",
                    "name": "name3",
                    "backupType": 5,
                    "includeMetadata": true,
                    "repoCount": 1,
                    "lastStatus": {
                        "successes": 0,
                        "warnings": 1,
                        "errors": 0
                    },
                    "planFinishedTime": 1645115380587,
                    "isRunning": false
                }
            ]
        }
    ]
}

limit

Określa maksymalną liczbę wyników zwracanych w pojedynczej odpowiedzi API.

Integer

page

Numer strony wyników.

Integer

organizationid

ID organizacji.

Guid

JSON
{
    "limit":5,
    "page":5,
    "organizationid":"a4a4acgd0-eg78f-4a4ac-kl39-99ka4ac1e777ff"
}
{
    "currentPage": 5,
    "pageCount": 5,
    "totalEntries": 23,
    "result": [
        {
            "id": "ea6a260b-a4ac-4204-a92d-918e6940b136",
            "name": "example1",
            "includeAllRepositories": false,
            "repositoryIds": [
                "c1961c1c-a425-a4ac-8757-32d5b6fc9aeb"
            ]
        },
        {
            "id": "fba158dd-6bf4-a4ac-8bc3-7305a9cc4dad",
            "name": "example2",
            "includeAllRepositories": false,
            "repositoryIds": [
                "de5c5995-b422-43c4-90b7-7ee182480dbb"
            ]
        },
        {
            "id": "fdb48001-1d3f-45ae-bb7a-49e86286ad6b",
            "name": "example3",
            "includeAllRepositories": false,
            "repositoryIds": [
                "a4ac5995-b422-43c4-a4ac-7ee182480dbb"
            ]
        }
     ]
}

planid

ID planu backupu*.

Guid

repositoryid

ID repozytorium.

Guid

JSON
{
    "planid":"hjkhkj60b-baac-4564-a92d-918e6940b136",
    "repositoryid":"ca4ac8f1c-a425-4869-8757-32c6567gc9aeb"
}
200 OK

planId

ID planu backupu*.

Guid

projectId

ID projektu.

Guid

JSON
{
    "planId":"ea6a260b-brrc-4204-a56c-918e6940b136",
    "projectId": "c1961r1e-a425-4769-8757-32d6b6fc7aeb"
}
200 OK

planid

ID planu backupu*.

Guid

repositoryid

ID repozytorium.

Guid

{
    "planid":"hjkhkj60b-baac-4564-a92d-918e6940b136",
    "repositoryid":"a4ac8f1c-a425-48hj-8757-32hj567gchjeb"
}
200 OK

planId

ID planu backupu*.

Guid

projectId

ID projektu.

Guid

JSON
{
    "planId": "05d46e44-f026-4cf9-a64a-1dd97328808c",
    "projectId": "022056bd-0044-0000-0000-004400000003"
}
200 OK

id

ID planu backupu*.

Guid

isActive

Wskazuje, czy harmonogram jest obecnie włączony (true) czy wyłączony (false).

Boolean

name

Nazwa planu backupu.

String

JSON
{
   "id":"a4acc15-b08b-40cb-a4ac-5e40ea4ac54",
   "isActive":true,
   "name":"example",
   "backupType":5,
   "schedule":{
      "id":"a4ac21-6da6-4c8c-a4ac5-f2ffca4ac516",
      "scheme":3,
      "delay":0,
      "preventSystemSleep":false,
      "options":[
         {
            "type":1,
            "trigger":1,
            "frequency":1,
            "days":[
               1
            ],
            "startAt":[
               {
                  "hour":17,
                  "minute":25
               }
            ],
            "interval":0,
            "nthDayOfWeek":0
         },
         {
            "type":3,
            "trigger":1,
            "frequency":3,
            "days":[
               1,
               2,
               3,
               4,
               5
            ],
            "startAt":[
               {
                  "hour":17,
                  "minute":25
               }
            ],
            "interval":0,
            "nthDayOfWeek":0
         }
      ],
      "backupWindow":
      [     
         [0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],
         [0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],
         [0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],
         [0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],
         [0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],
         [0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],
         [0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]
      ],
      "retention":{
         "id":"00000000-0000-0000-0000-000000000000",
         "rule":1,
         "options":null,
         "order":0
      }
   },
   "compressionSettings":{
      "codec":2,
      "level":2
   },
   "encryptionSettings":null,
   "customActions":{
      "preBackupAction":null,
      "postSnapshotAction":null,
      "postBackupAction":null
   },
   "advancedOptions":{
      "useVss":"True",
      "maxTaskRetriesCount":"3",
      "taskRetriesFrequency":"60000",
      "maxConcurrentTasks":"5",
      "processorProperties_PartSize":"1048576"
   },
   "deltaSettings":null,
   "workerId":"a4ac1eb-bbe7-a4ac-b3da-a4acf5642a",
   "filteringSettings":null,
   "organizationId":"a4ac2cd0-ea4ac-4ced-be39-6a4ace033ff",
   "repositoriesIds":[
      "c1961c1c-a425-4769-8757-32d5b6fc9aeb"
   ],
   "includeAllRepositories":false,
   "includeMetadata":true,
   "storageId":"a4ac74ac-7a4ac-4fec-9448-a4ace9267d7"
}
200 OK

id

ID planu backupu*.

Guid

isActive

Wskazuje, czy harmonogram jest obecnie włączony (true) czy wyłączony (false).

Boolean

name

Nazwa planu backupu.

String

JSON
{
  "id":"f4b99db4-c0e9-4111-9292-ffc5812aad2c",
  "isActive":true,
  "name":"Plan DevOps",
  "backupType":10,
  "schedule":{
    "scheme":5,
    "options":[
      {
        "type":0,
        "trigger":1,
        "frequency":3,
        "days":[
          0,
          1,
          2,
          3,
          4,
          5,
          6
        ],
        "startAt":[
          {
            "hour":9,
            "minute":29
          }
        ],
        "nthDayOfWeek":0,
        "interval":0
     }
    ],
    "retention":{
      "rule":3,
      "options":[
        {
          "number":3,
          "period":1,
          "type":0
        }
      ],
      "order":0
    },
    "backupWindow":[
      [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
      [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
      [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
      [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
      [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
      [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
      [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
    ]
  },
  "compressionSettings":{
    "codec":2,
    "level":2
  },
  "encryptionSettings":null,
  "customActions":{
  "preBackupAction":{
      "windows":{
        "enabled":true,
        "scriptType":0,
        "command":"C:\\Users\\Name\\Desktop\\test.bat",
        "passwordId":"00000000-0000-0000-0000-000000000000",
        "arguments":null
      },
      "unix":{
        "enabled":false
      },
      "waitForExecution":true,
      "waitingInterval":0
    },
    "postSnapshotAction":null,
    "postBackupAction":null
  },
  "advancedOptions":{
    "useVss":"True",
    "maxTaskRetriesCount":3,
    "taskRetriesFrequency":60000,
    "maxConcurrentTasks":5,
    "largeResourcesBufferSize":134217728
  },
  "deltaSettings":null,
  "notificationSettings":{
    "enabled":false,
    "planNotificationsConfiguration":null,
    "recipients":[

    ]
  },
  "workerId":"758fa497-f93b-436f-9571-2a3f7d496ac1",
  "filteringSettings":null,
  "ignoreCorruptedAttachments":false,
  "organizationId":"017f210e-0edd-6645-82a8-f9c9c3cae4d6",
  "gitChoiceMode":3,
  "repositoriesIds":[

  ],
  "excludedRepositoriesIds":[

  ],
  "projectsIds":[

  ],
  "wikisIds":[

  ],
  "additionalCredentials":[

  ],
  "rules":[
    {
      "choiceMode":2,
      "type":2,
      "ruleChoice":{
        "meetAllRules":false,
        "rules":[

        ]
      }
    },
    {
      "choiceMode":2,
      "type":1,
      "ruleChoice":{
        "meetAllRules":false,
        "rules":[

        ]
      }
    }
  ],
  "storageId":"718fgta6-fo5c-4194-8d4e-13e91cd68a70",
  "type":1
}
200 OK

id

ID organizacji.

Guid

limit

Określa liczbę repozytoriów zwracanych na stronę.

Integer

orderby

Określa pole używane do sortowania zwracanych wyników.

String

JSON
{
    "id": "a4ac2cd0-a4ac-4ced-be39-a4ac31e033ff",
    "limit": 2,
    "orderby": "Name",
    "ordertype": "asc",
    "thenOrderBy": "",
    "thenOrderByType": "",
    "page": 1,
    "filters":[
    {
        "operator": "eq",
        "value": true,
        "property": "IsRemoved"
    }
    ]
}
{
    "currentPage": 1,
    "pageCount": 1,
    "totalEntries": 2,
    "result": {
        "synchronizationInProgress": false,
        "lastSynchronizationRepositoriesStartTime": 1645546071481,
        "repositories": [
            {
                "id": "a4ac3ac7d-99e4-a4ac-b5a4-a4acdeee5",
                "serverId": "a4acac7d-99e4-a4ac-b5a4-ea4ac2deee5",
                "name": "org/repo1",
                "lastBackup": 0,
                "lastSuccessfulBackup": 0,
                "nextBackup": 0,
                "isProtected": true,
                "isRemoved": true,
                "status": 2,
                "lastBackupTaskStatus": 0,
                "isPublic": false
            },
            {
                "id": "a4acf294-b30e-a4ac-aabb-6a4ac6578686",
                "serverId": "a4ac294-b30e-a4ac-aabb-63a4ac578686",
                "name": "org/repo2",
                "lastBackup": 0,
                "lastSuccessfulBackup": 0,
                "nextBackup": 1645556400000,
                "isProtected": true,
                "isRemoved": true,
                "status": 2,
                "lastBackupTaskStatus": 0,
                "isPublic": false
            }
       ],
     "removedRepositories": 15
}

Ids

Identyfikatory repozytoriów do aktywacji.

Array<Guid>

JSON
{
    "Ids":[
        "a4ac979e-0000-0000-0000-000000000000",
        "a4acca07-0000-0000-0000-000000000000",
        "a4ac7c5-0000-0000-0000-000000000000",
        "a4ac9d7a-0000-0000-0000-000000000000",
        "1a4ac9bc9-0000-0000-0000-000000000000",
        "a4ac79fe9-0000-0000-0000-000000000000",
        "a4ac3f220-0000-0000-0000-000000000000",
        "a4aca817-0000-0000-0000-000000000000"
    ]
}
{
    "success": [],
    "error": [
        {
            "id": "a4ac7979e-0000-0000-0000-000000000000",
            "errorCode": "LI5020"
        },
        {
            "id": "a4acdca07-0000-0000-0000-000000000000",
            "errorCode": "LI5020"
        },
        {
            "id": "a4ac797c5-0000-0000-0000-000000000000",
            "errorCode": "LI5020"
        },
        {
            "id": "a4ac79d7a-0000-0000-0000-000000000000",
            "errorCode": "LI5020"
        },
        {
            "id": "a4ac79bc9-0000-0000-0000-000000000000",
            "errorCode": "LI5020"
        },
        {
            "id": "a4ac79fe9-0000-0000-0000-000000000000",
            "errorCode": "LI5020"
        },
        {
            "id": "a4ac3f220-0000-0000-0000-000000000000",
            "errorCode": "LI5020"
        },
        {
            "id": "a4acea817-0000-0000-0000-000000000000",
            "errorCode": "LI5020"
        }
    ]
}

Ids

Identyfikatory repozytoriów do dezaktywacji.

Array<Guid>

JSON
{
    "Ids":[
        "a4ac7979e-0000-0000-0000-000000000000",
        "a4acdca07-0000-0000-0000-000000000000",
        "a4ac797c5-0000-0000-0000-000000000000",
        "a4ac79d7a-0000-0000-0000-000000000000",
        "a4ac79bc9-0000-0000-0000-000000000000",
        "a4ac79fe9-0000-0000-0000-000000000000",
        "a4ac3f220-0000-0000-0000-000000000000",
        "a4acea817-0000-0000-0000-000000000000"
    ]
}
{
    "success": [],
    "error": [
        {
            "id": "a4ac7979e-0000-0000-0000-000000000000",
            "errorCode": "GT1001"
        },
        {
            "id": "a4acdca07-0000-0000-0000-000000000000",
            "errorCode": "GT1001"
        },
        {
            "id": "a4ac797c5-0000-0000-0000-000000000000",
            "errorCode": "GT1001"
        },
        {
            "id": "a4ac79d7a-0000-0000-0000-000000000000",
            "errorCode": "GT1001"
        },
        {
            "id": "a4ac79bc9-0000-0000-0000-000000000000",
            "errorCode": "GT1001"
        },
        {
            "id": "a4ac79fe9-0000-0000-0000-000000000000",
            "errorCode": "GT1001"
        },
        {
            "id": "a4ac3f220-0000-0000-0000-000000000000",
            "errorCode": "GT1001"
        },
        {
            "id": "a4acea817-0000-0000-0000-000000000000",
            "errorCode": "GT1001"
        }
    ]
}

id

Identyfikatory repozytoriów do usunięcia.

Guid

removedata

Jeśli wartość wynosi true, system usuwa również dane kopii zapasowej wybranego repozytorium.

Boolean

JSON
{
    "id": "a4acd28-eee0-404a-a4ac0-6ca4ac260ca",
    "removedata": true
}
{
    "succeededIds": [
        "a4ac8d28-eee0-a4ac-a070-6a4ac76260ca"
    ],
    "failedIds": [],
    "errors": []
}

id

ID organizacji.

Guid

JSON
{
    "id": "a4ac2cd0-a4ac-4ced-a4ac-60ca4ac3ff"
}
200 OK

page

Numer strony wyników.

Integer

filters

Filtry danych*.

Array<filters>

type

Określa typ planu backupu.

EPlanType

backupType

Typ backupu.

EBackupType

storageId

ID magazynu danych backupu.

Guid

repositoriesIds

Tabela identyfikatorów repozytoriów.

IEnumerable<Guid>

workerId

Unikalny identyfikator agenta (workera) wykonującego operacje backupu.

Guid

schedule

Harmonogram backupu.

BackupScheduleDTO

advancedOptions

Opcje zaawansowane.

Dictionary<string, string>

compressionSettings

Ustawienia kompresji.

CompressionSettingsEntry

encryptionSettings

Ustawienia szyfrowania.

EncryptionSettingsEntry

customActions

Akcje zdefiniowane przez użytkownika.

BackupCustomActionsEntry

inculdeAllReposistories

Jeśli wartość wynosi true, plan ignoruje wybrane repozytoria i obejmuje wszystkie repozytoria w organizacji.

Boolean

organizationId

ID organizacji.

Guid

includeMetadata

Jeśli wartość wynosi true, backup obejmuje metadane.

Boolean

type

Określa typ planu backupu.

EPlanType

backupType

Typ backupu.

EBackupType

storageId

ID magazynu danych backupu.

Guid

repositoriesIds

Tabela identyfikatorów repozytoriów.

IEnumerable<Guid>

excludedRepositoriesIds

Identyfikatory wykluczonych repozytoriów.

IEnumerable<Guid>

projectsIds

Identyfikatory projektów do objęcia backupem.

IEnumerable<Guid>

wikisIds

Identyfikatory wiki do objęcia backupem.

IEnumerable<Guid>

workerId

Unikalny identyfikator agenta (workera) wykonującego operacje backupu.

Guid

schedule

Harmonogram backupu.

BackupScheduleDTO

advancedOptions

Opcje zaawansowane.

Dictionary<string, string>

compressionSettings

Ustawienia kompresji.

CompressionSettingsEntry

encryptionSettings

Ustawienia szyfrowania.

EncryptionSettingsEntry

customActions

Akcje zdefiniowane przez użytkownika.

BackupCustomActionsEntry

notificationSettings

Ustawienia powiadomień.

NotificationSettingsEntry

organizationId

ID organizacji Azure DevOps.

Guid

includeMetadata

Jeśli wartość wynosi true, backup obejmuje metadane.

Boolean

useExtraCredentials

Wskazuje, czy podczas tworzenia kopii zapasowej organizacji w chmurze używane są dodatkowe poświadczenia.

Boolean

additionalCredentials

Zbiór dodatkowych poświadczeń.

Guid[]

resourceKindsToIgnore

Rodzaje zasobów do zignorowania.

List<int>

gitChoiceMode

Tryb wyboru repozytorium.

[EGitChoiceMode](Classes/EGitChoiceMode.md)

rules

Ustawienia wyboru opartego na regułach dla każdego elementu: projekt, wiki, repozytorium.

List<AzureDevOpsRule>

ordertype

Określa kolejność sortowania: rosnącą (asc) lub malejącą (desc).

String

page

Numer strony wyników.

Integer

filters

Filtry danych*.

Array<filters>

REST API dla ekosystemów DevOps

Learn about the Xopero ONE REST API for DevOps organizations and how to use it effectively.

Przegląd REST API systemu Xopero ONE dla ekosystemów DevOps, obejmujący metody uwierzytelniania oraz kluczowe endpointy do zarządzania operacjami backupu.

Lista żądań REST API Xopero ONE dotyczących operacji backupu, w tym zarządzania repozytoriami, obsługi metadanych oraz synchronizacji organizacji.

Przegląd i uwierzytelnianie
Dostępne żądania API
Cover
Cover

Przegląd i uwierzytelnianie

Przegląd REST API systemu Xopero ONE dla ekosystemów DevOps, obejmujący metody uwierzytelniania oraz kluczowe endpointy do zarządzania operacjami backupu.

REST API w systemie Xopero ONE udostępnia programistyczne endpointy dostosowane do ekosystemów DevOps — dzięki wykorzystaniu standardowych żądań HTTP oraz ustrukturyzowanych odpowiedzi, systemy zewnętrzne, skrypty i narzędzia automatyzacji mogą pobierać informacje o chronionych zasobach, zadaniach kopii zapasowych, repozytoriach oraz konfiguracji magazynów pamięci masowej, a także wywoływać wybrane operacje zarządzania.


Informacje ogólne

REST (Representational State Transfer) to styl architektoniczny projektowania interfejsów programowania aplikacji (API), który wykorzystuje żądania HTTP do interakcji z zasobami identyfikowanymi za pomocą adresów URL oraz wykonywania na nich operacji. W REST API dane mogą być tworzone, odczytywane, aktualizowane lub usuwane przy użyciu metod HTTP, takich jak POST, GET, PUT i DELETE.

REST API systemu Xopero ONE umożliwia zarządzanie kopiami zapasowymi usług Git, takich jak GitHub, GitLab, Azure DevOps oraz Bitbucket. Za pomocą REST API można wyświetlać organizacje Git, sprawdzać status planów kopii zapasowych organizacji, modyfikować plany backupu, aktywować licencje dla wybranych repozytoriów oraz wykonywać inne powiązane operacje.

REST API może być używane przez każdego użytkownika posiadającego rolę System Administrator, który jest zarejestrowany w tej samej instancji systemu Xopero ONE. Niektóre żądania wymagają kont z dodatkowymi uprawnieniami, określonymi w opisie danego żądania.

Endpointy REST API systemu Xopero ONE korzystają z metody HTTP POST.


REST API systemu Xopero ONE wymaga uwierzytelnienia (authentication) oraz autoryzacji (authorization).

Uwierzytelnienie odbywa się poprzez wysłanie żądania logowania metodą POST. Żądanie logowania generuje token dostępu, który jest wymagany do autoryzacji wszystkich kolejnych żądań API.

Dla przykładu, aby użyć tokenu dostępu w żądaniu POST getMany w aplikacji Postman, otwórz zakładkę Authorization, wybierz typ autoryzacji Bearer Token, a następnie wklej token dostępu w polu Token. Dostosuj wymagane parametry i wyślij żądanie — token dostępu zawiera niezbędne uprawnienia do wykonania operacji danego endpointu.


Żądania mogą być wysyłane do poniższych endpointów API.

Metoda HTTP i ścieżka
Opis

POST /account/login

Zaloguj się do Xopero ONE Management Service i uzyskaj token dostępu.

POST /git/organizations/getmany

Wyświetl listę organizacji Git zintegrowanych z Xopero ONE.

POST /plans/listassignedtoorganization

Wyświetl wszystkie plany backupu przypisane do wybranej organizacji Git.

Dostępne żądania API

Uwierzytelnianie

Pełną dokumentację żądania logowania POST znajdziesz .

Token dostępu wygenerowany za pomocą żądania logowania POST jest ważny przez 30 dni.

Endpointy API

Pełna dokumentacja żądań API jest dostępna w .

Przydatne linki i materiały

POST /plans/attachgitrepository

Dołącz repozytorium do planu backupu.

POST plans/AttachAzureProject

Dołącz projekt Azure DevOps do planu backupu.

POST /plans/detachgitrepository

Usuń repozytorium z planu backupu.

POST plans/DetachAzureProject

Usuń projekt Azure DevOps z planu backupu.

POST /plans/modifygitplan

Edytuj ustawienia istniejącego planu backupu.

POST plans/ModifyAzurePlanAsync

Edytuj ustawienia istniejącego planu backupu Azure DevOps.

POST /git/repositories/getmany

Pobierz listę repozytoriów wybranej organizacji Git.

POST /git/repositories/activate

Aktywuj licencje dla wybranych repozytoriów.

POST /git/repositories/deactivate

Dezaktywuj licencje wybranych repozytoriów.

POST /git/repositories/remove

Usuń repozytorium z systemu Xopero ONE.

POST /git/repositories/sync

Zsynchronizuj dane organizacji z systemem Xopero ONE.

tutaj
tym artykule