Skip to content

gnss-lab/API-Gateway

Repository files navigation

API GATEWAY

Управления

Добавление сервиса

Метод URL
POST /service

Тело

{
  "domain": "string",
  "name_service": "string",
  "port": 80
}
  • domain - Домен на ваш сервис. Обязательно нужно указывать проток. Например http://127.0.0.1
  • name_service - Имя сервиса. Оно должно быть уникальным. После указание имени URL в последующем будет выгледеть следующим образом: https://127.0.0.1:80 /{name_service}/...
  • port - Порт сервиса.

**В domain нельзя указывать вместе с портом. Например: http://127.0.0.1:8080 ** Нужно делать по отдельности.

Ответ

...

Получение информации обо всех сервисов

Метод URL
GET /services

Параметры

  • page - Номер страницы. В качестве ответа выдает первый десять сервисов.

Ответ

{
  "services": [
    {
      "id": 2,
      "domain": "http://192.168.100.9",
      "port": 8000,
      "name": "rinex2csv",
      "urls": [
        "/upload_rinex",
        "/upload_nav",
        "/run",
        "/get_result"
      ],
      "status-code": 200
    }
  ],
  "metadata": {
    "page": 1,
    "count_page": 1
  }
}
  • services - Массив сервисов
    • id -  Уникальный индификатор сервиса.
    • domain - Домен сервиса.
    • port -  Порт сервиса.
    • name - Уникальное имя сервиса
    • urls - массив найденных URL в сервисе
    • status-code - Статус код сервиса
  • metadata - Дополнительная информация
    • page - Текущая страница. На которым вы находитесь
    • count_page - Всего страниц.

Обновление сервиса

Обновляет все сервисы без предварительного перезапуска API-Gateway

Method Path
PATCH /services

Ответ

...

Удаление сервиса

Method Path
DELETE /service

Параметры

  • id_service - id сервиса

Ответ

...

Скачивание файлов

Если на вашем сервисе присутствует скачиваение файла с помощью FileUpload, то через Swagger не получится скачать файл, так как при отправке запроса API-Gateway начнет стримить поток байтов. Поэтому при скачивание файла лучше использовать какой-нибудь язык программирование.

Пример на Python с использованием Cookies

import requests

cookies = {'rinex_to_csv_processing_id': '0000000000000000001'}

url = 'http://127.0.0.1:8080/rinex/rinex_to_csv/get_result'
r = requests.get(url, allow_redirects=True, cookies=cookies)

if r.status_code == 200:
    open('save.zip', 'wb').write(r.content)