Skip to content

Golang Test task for an internship in linxdatacenter . Work with JSON. Make the basic http functionality for a VM which is stored on the API-BasicAuth and the subsequent authorization

Notifications You must be signed in to change notification settings

3olegKrylov/VisualMachineLib

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

2 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Тестовое задание

Описание

Вам дан адрес, по которому доступен API, позволяющий получать, добавлять и обновлять набор данных о виртуальных машинах.
Формат обмена данными - JSON

Задание:

  • Создать веб-страницу, позволяющую получать данные о существующих виртуальных машинах, обновлять эти данные и добавлять новую виртуальную машину.
  • Выбор инструментов остаётся на Ваше усмотрение.
  • Использование JS/bootstrap будет плюсом.

Доступные методы

GET /api/v1/auth/

Описание

Производит авторизацию пользователя. Все методы API могут быть использованы только после авторизации.

  • Тип авторизации BASIC
  • При успешной авторизации возвращает заголовок с кодом ответа 200, в теле содержится токен авторизации.
  • В случае неуспешной авторизации возвращает заголовок с кодом 401.

Все дальнейшие запросы к API должны содержать полученный токен в заголовке x-auth

GET /api/v1/vm/

Описание

Возвращает данные обо всех виртуальных машинах

Параметры запроса

headers:
x-auth:token - токен, полученные после авторизации

Параметры ответа

Название Тип Описание
Id int id виртуальной машины в БД
Name string имя виртуальной машины
Cpu double частота процессора в GHz
Ram int объем оперативной памяти
SSD int объем SSD диска
SATA string объем SATA диска

Пример

Запрос

HTTP 1.1
GET /api/v1/vm/

Headers:
x-auth: token

Ответ

HTTP/1.1 200 OK

[
    {
        "Id":   1,
        "Name": "first VM",
        "Cpu":  2.6,
        "Ram":  64,
        "SSD":  120,
        "SATA": "1024"
    },
    {
        "Id":   2,
        "Name": "second VM",
        "Cpu":  2,
        "Ram":  32,
        "SSD":  16,
        "SATA": "256"
    },
    {
        "Id":   3,
        "Name": "third VM",
        "Cpu":  3,
        "Ram":  22,
        "SSD":  2048,
        "SATA": "10"
    }
]

GET /api/v1/vm/id/id

Описание

Возвращает данные об виртуальной машине с конктретным id

Параметры запроса

headers:
x-auth:token - токен, полученные после авторизации

Параметры ответа

Название Тип Описание
Id int id виртуальной машины в БД
Name string имя виртуальной машины
Cpu double частота процессора в GHz
Ram int объем оперативной памяти
SSD int объем SSD диска
SATA string объем SATA диска

Пример

Запрос

HTTP 1.1
GET /api/v1/vm/id/3

Headers:
x-auth: token

Ответ

HTTP/1.1 200 OK

[
    {
        "Id":   3,
        "Name": "third VM",
        "Cpu":  3,
        "Ram":  22,
        "SSD":  2048,
        "SATA": "10"
    }
]

POST /api/v1/vm/

Описание

Принимает данные об виртуальной машине (или нескольких)

  • В случае, если ID переданной ВМ существует, данные обновятся, в противном случае будет создана новая запись.

Параметры запроса

headers:
x-auth:token - токен, полученные после авторизации

body:

Название Тип Описание
Id int id виртуальной машины в БД
Name string имя виртуальной машины
Cpu double частота процессора в GHz
Ram int объем оперативной памяти
SSD int объем SSD диска
SATA string объем SATA диска

Параметры ответа

Пример

Запрос

HTTP 1.1
POST /api/v1/vm/

Headers:
x-auth: token

Body:

[
    {
        "Id":   3,
        "Name": "third VM",
        "Cpu":  3,
        "Ram":  22,
        "SSD":  2048,
        "SATA": "10"
    }
]
Ответ

HTTP/1.1 202 Accepted

[
    {
        "Id":   3,
        "Name": "third VM",
        "Cpu":  3,
        "Ram":  22,
        "SSD":  2048,
        "SATA": "10"
    }
]

About

Golang Test task for an internship in linxdatacenter . Work with JSON. Make the basic http functionality for a VM which is stored on the API-BasicAuth and the subsequent authorization

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published