# Przegląd i uwierzytelnianie

**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.

***

## Uwierzytelnianie

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.

{% hint style="info" %}
Pełną dokumentację żądania logowania POST znajdziesz [tutaj](https://helpcenter.xopero.com/xopero-one-en/pl/zarzadzanie/dostepne-zadania-api#post-account-login).
{% endhint %}

{% hint style="warning" %}
Token dostępu wygenerowany za pomocą żądania logowania POST jest ważny przez 30 dni.
{% endhint %}

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.

<figure><img src="https://1873867500-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2Fwg6DDqlTFok8F9zv6rqa%2Fuploads%2FxM4sU9vFTWxmfUr4PIJk%2Foverview_and_authentication_REST_API_1.png?alt=media&#x26;token=7df35030-dcae-4d36-b65f-e2e498693156" alt=""><figcaption></figcaption></figure>

***

## Endpointy API

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

{% hint style="info" %}
Pełna dokumentacja żądań API jest dostępna w [tym artykule](https://helpcenter.xopero.com/xopero-one-en/pl/zarzadzanie/rest-api-dla-ekosystemow-devops/dostepne-zadania-api).
{% endhint %}

| 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 organizacji z systemem **Xopero ONE**.                    |

***

## Przydatne linki i materiały

{% content-ref url="dostepne-zadania-api" %}
[dostepne-zadania-api](https://helpcenter.xopero.com/xopero-one-en/pl/zarzadzanie/rest-api-dla-ekosystemow-devops/dostepne-zadania-api)
{% endcontent-ref %}
