Test web service

Instruction

  • Install PostgreSQL
  • psql -U postgres -d /scripts/postgres/scoltest.sql
  • build project cmd\server_app.main.go
  • place the file config.yml next to the executable file
  • change the settings in config.yml if necessary
  • run

    API

    Создать пользователя

    Метод: POST

    Маршрут: http://[domainname:port]/user

    Наименование параметра Значение
    1 name Имя.
    2 surname Фамилия.
    3 midlename Отчество.
    4 gender Пол.
    5 age Возраст

    Ответ 200OK

    Наименование параметра Значение
    1 uuid uuid созданного пользователя
    2 name Имя.
    3 surname Фамилия.
    4 midlename Отчество.
    5 fio surname+name+middlename
    6 gender Пол.
    7 age Возраст

    Другие варианты ответов 500, 400

    Изменить пользователя

    Метод: PUT

    Маршрут: http://[domainname:port]/users/{uuid пользователя}

    Наименование параметра Значение
    1 name Имя.
    2 surname Фамилия.
    3 midlename Отчество.
    4 fio surname+name+middlename
    5 gender Пол.
    6 age Возраст

    204, 500, 400

    Удалить пользователя

    Метод: DELETE

    Маршрут: http://[domainname:port]/users/{uuid пользователя}

    Варианты ответов 204, 500, 400

    Создать продукт

    Метод: POST

    Маршрут: http://[domainname:port]/product

    Наименование параметра Значение
    1 description Описание товара.
    2 price Цена товара.
    3 currency Валюта
    4 left_in_stock Остаток на складе.

    Ответ 200OK

    Наименование параметра Значение
    1 uuid uuid созданного товара.
    2 description Описание товара.
    3 price Цена товара.
    4 currency Валюта
    5 left_in_stock Остаток на складе.

    Другие варианты ответов 500, 400

    Изменить продукт

    Метод: PUT

    Маршрут: http://[domainname:port]/products/{uuid продукта}

    Наименование параметра Значение
    1 description Описание товара.
    2 price Цена товара.
    3 currency Валюта
    4 left_in_stock Остаток на складе.

    Другие варианты ответов 204, 500, 400

    Удалить продукт

    Метод: DELETE

    Маршрут: http://[domainname:port]/products/{uuid продукта}

    Варианты ответов 204, 500, 400

    Создать заказ

    Метод: POST

    Маршрут: http://[domainname:port]/order/{uuid пользователя}

    Наименование параметра Значение
    1 product JSON массив из uuid продукта

    Ответ 200OK

    Наименование параметра Значение
    1 product JSON массив из uuid продукта
    2 uuid JSON массив из uuid ордеров

    Заказ представялет собой совокупность ордеров. Может иметь несколько продуктов. Ордер представляют собой номер заказа к которому он относиться и может иметь только один продукт. Ордер нельзя изменить только создать и удалить. При возврате ответа важен порядок product и uuid , так как i-й элемент из productt соответсует i-му элемиенту uuid

    Другие варианты ответов 500, 400

    Изменить заказ

    Метод: PUT

    Маршрут: http://[domainname:port]/order/{uuid пользователя}

    Наименование параметра Значение
    1 product JSON массив из uuid продукта
    2 uuid JSON массив из uuid ордеров
    3 id Номер заказа пользователя

    Ответ 200OK

    Наименование параметра Значение
    1 product JSON массив из uuid продукта
    2 uuid JSON массив из uuid ордеров
    3 id Номер заказа пользователя

    500, 400

    Удалить продукт

    Метод: DELETE

    Маршрут: http://[domainname:port]/order/{uuid пользователя}

    Наименование параметра Значение
    1 id Номер заказа пользователя

    Варианты ответов 204, 500, 400