+++
title = "Командный HTTP API "
description = "Harvest Командный HTTP API"
keywords = ["harvest", "http", "documentation", "api", "team", "teams", "group"]
aliases = ["/docs/harvest/latest/http_api/team/"]
+++

# Командный API

Этот API можно использовать для создания / обновления / удаления команд и добавления / удаления пользователей в команды. Все действия требуют, чтобы у пользователя была роль администратора организации.

## Командный Поиск С Подкачкой По Страницам

`GET /api/teams/search?perpage=50&page=1&query=myteam`

или

`GET /api/teams/search?name=myteam`

```http
GET /api/teams/search?perpage=10&page=1&query=myteam HTTP/1.1
Accept: application/json
Content-Type: application/json
Authorization: Basic YWRtaW46YWRtaW4=
```

### Использование параметра запроса

Значение по умолчанию для параметра "на страницу` равно "1000`, а для параметра "страница" равно "1".

Поле `totalCount` в ответе можно использовать для разбивки списка команд на страницы, например. если `totalCount` равно 100 командам, а параметр `perpage` имеет значение 10, то имеется 10 страниц команд.

Параметр `query` является необязательным, и он вернет результаты, в которых значение запроса содержится в поле `name`. Значения запроса с пробелами должны быть закодированы в URL, например `query=my%20 team`.

### Использование параметра name

Параметр `name` возвращает одну команду, если параметр соответствует полю `name`.

**Пример Ответа**:

```http
HTTP/1.1 200
Content-Type: application/json

{
  "totalCount": 1,
  "teams": [
    {
      "id": 1,
      "orgId": 1,
      "name": "MyTestTeam",
      "email": "",
      "avatarUrl": "\/avatar\/3f49c15916554246daa714b9bd0ee398",
      "memberCount": 1
    }
  ],
  "page": 1,
  "perPage": 1000
}
```

Коды состояния:

- **200** - Хорошо
- **401** - Несанкционированный
- **403** - В разрешении отказано
- **404** - Команда не найдена (при поиске по названию)

## ## GetTeamById

`GET /api/teams/:id`

**Пример Запроса**:

```http
GET /api/teams/1 HTTP/1.1
Accept: application/json
Content-Type: application/json
Authorization: Basic YWRtaW46YWRtaW4=
```

**Пример Ответа**:

```http
HTTP/1.1 200
Content-Type: application/json

{
  "id": 1,
  "orgId": 1,
  "name": "MyTestTeam",
  "email": "",
  "created": "2017-12-15T10:40:45+01:00",
  "updated": "2017-12-15T10:40:45+01:00"
}
```

Коды состояния:

- **200** - Хорошо
- **401** - Несанкционированный
- **403** - В разрешении отказано
- **404** - Команда не найдена

## Добавить команду

Название команды должно быть уникальным. `имя` является обязательным, а "адрес электронной почты", `Идентификатор организации" необязательны.

`POST /api/команды`

**Пример Запроса**:

```http
POST /api/teams HTTP/1.1
Accept: application/json
Content-Type: application/json
Authorization: Basic YWRtaW46YWRtaW4=

{
  "name": "MyTestTeam",
  "email": "email@test.com",
  "orgId": 2
}
```

**Пример Ответа**:

```http
HTTP/1.1 200
Content-Type: application/json

{"message":"Team created","teamId":2}
```

Коды состояния:

- **200** - Хорошо
- **401** - Несанкционированный
- **403** - В разрешении отказано
- **409** - Название команды взято

## Команда обновления

Есть два поля, которые можно обновить для команды: "имя" и "адрес электронной почты".

`PUT /api/teams/:идентификатор`

**Пример Запроса**:

```http
PUT /api/teams/2 HTTP/1.1
Accept: application/json
Content-Type: application/json
Authorization: Basic YWRtaW46YWRtaW4=

{
  "name": "MyTestTeam",
  "email": "email@test.com"
}
```

**Пример Ответа**:

```http
HTTP/1.1 200
Content-Type: application/json

{"message":"Team updated"}
```

Коды состояния:

- **200** - Хорошо
- **401** - Несанкционированный
- **403** - В разрешении отказано
- **404** - Команда не найдена
- **409** - Название команды взято

## ## Удалить Их По Идентификатору

`DELETE /api/teams/:id`

**Пример Запроса**:

```http
DELETE /api/teams/2 HTTP/1.1
Accept: application/json
Content-Type: application/json
Authorization: Basic YWRtaW46YWRtaW4=
```

**Пример Ответа**:

```http
HTTP/1.1 200
Content-Type: application/json

{"message":"Team deleted"}
```

Коды состояния:

- **200** - Хорошо
- **401** - Несанкционированный
- **403** - В разрешении отказано
- **404** - Не удалось удалить команду. Идентификатор не найден

## Получить Членов Команды

`GET /api/teams/:teamId/members`

**Пример Запроса**:

```http
GET /api/teams/1/members HTTP/1.1
Accept: application/json
Content-Type: application/json
Authorization: Basic YWRtaW46YWRtaW4=
```

**Пример Ответа**:

```http
HTTP/1.1 200
Content-Type: application/json

[
  {
    "orgId": 1,
    "teamId": 1,
    "userId": 3,
    "email": "user1@email.com",
    "login": "user1",
    "avatarUrl": "\/avatar\/1b3c32f6386b0185c40d359cdc733a79"
  },
  {
    "orgId": 1,
    "teamId": 1,
    "userId": 2,
    "email": "user2@email.com",
    "login": "user2",
    "avatarUrl": "\/avatar\/cad3c68da76e45d10269e8ef02f8e73e"
  }
]
```

Коды состояния:

- **200** - Хорошо
- **401** - Несанкционированный
- **403** - В разрешении отказано

## Добавить члена Команды

`POST /api/teams/:идентификатор команды/участники`

**Пример Запроса**:

```http
POST /api/teams/1/members HTTP/1.1
Accept: application/json
Content-Type: application/json
Authorization: Basic YWRtaW46YWRtaW4=

{
  "userId": 2
}
```

**Пример Ответа**:

```http
HTTP/1.1 200
Content-Type: application/json

{"message":"Member added to Team"}
```

Коды состояния:

- **200** - Хорошо
- **400** - Пользователь уже добавлен в эту команду
- **401** - Несанкционированный
- **403** - В разрешении отказано
- **404** - Команда не найдена

## Удалить Участника Из Команды

`DELETE /api/teams/:идентификатор команды/участники/:идентификатор пользователя"

**Пример Запроса**:

```http
DELETE /api/teams/2/members/3 HTTP/1.1
Accept: application/json
Content-Type: application/json
Authorization: Basic YWRtaW46YWRtaW4=
```

**Пример Ответа**:

```http
HTTP/1.1 200
Content-Type: application/json

{"message":"Team Member removed"}
```
Коды состояния:

- **200** - Хорошо
- **401** - Несанкционированный
- **403** - В разрешении отказано
- **404** - Команда не найдена/Член команды не найден

## Получить Предпочтения команды

`GET /api/teams/:идентификатор команды/настройки`

**Пример Запроса**:

```http
GET /api/teams/2/preferences HTTP/1.1
Accept: application/json
Content-Type: application/json
Authorization: Bearer eyJrIjoiT0tTcG1pUlY2RnVKZTFVaDFsNFZXdE9ZWmNrMkZYbk
```

**Пример Ответа**:

```http
HTTP/1.1 200
Content-Type: application/json

{
  "theme": "",
  "homeDashboardId": 0,
  "timezone": ""
}
```

## Обновить настройки команды

`PUT /api/teams/:идентификатор команды/настройки`

**Пример Запроса**:

```http
PUT /api/teams/2/preferences HTTP/1.1
Accept: application/json
Content-Type: application/json
Authorization: Bearer eyJrIjoiT0tTcG1pUlY2RnVKZTFVaDFsNFZXdE9ZWmNrMkZYbk

{
  "theme": "dark",
  "homeDashboardId": 39,
  "timezone": "utc"
}
```

Схема тела JSON:

- ** тема** - Одна из: `светлая`, `темная` или пустая строка для темы по умолчанию
- **- ** главная панель мониторинга** - Числовой `:идентификатор` панели мониторинга, по умолчанию: `0`
- **- ** часовой пояс** - Один из: `uc`, `браузер` или пустая строка для значения по умолчанию

Пропуск ключа приведет к замене текущего значения системным значением по умолчанию.

**Пример Ответа**:

```http
HTTP/1.1 200
Content-Type: text/plain; charset=utf-8

{
  "message":"Preferences updated"
}
```
