Skip to content

proggcreator/wb-Restful

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

15 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Написание первого RESTful API сервиса

Цель: научиться писать RESTful API микросервисы

База (postgres)
Host: postgres.finance.svc.k8s.dldevel
Port: 5432
Name: postgresdb
User: postgresadmin
Password: admin123

Задание 1.

написать сервис, у которого будут методы:

  1. нанять сотрудника (201 сreated при успешном выполнении)
employees.employee_add(
	_id integer,
	_name varchar,
	_last_name varchar,
	_patronymic varchar,
	_phone varchar,
	_position varchar,
	_good_job_count integer
)
  1. уволить сотрудника
employees.employee_remove(_id integer)
  1. изменить личные данные сотрудника
employees.employee_upd(
	_id integer,
	_name varchar,
	_last_name varchar,
	_patronymic varchar,
	_phone varchar,
	_position varchar,
	_good_job_count integer
)
  1. получить всех сотрудников
employees. get_all(_id integer)
  1. получить сотрудника по его ID
employees.employee_get(_id integer)

Условия:

  • структура проекта – mvc https://ru.wikipedia.org/wiki/Model-View-Controller
  • ошибки необходимо возвращать по стандарту rfc7807
  • у каждого метода путь должен начинаться с префикса /api/v1
  • все методы должны быть закрыты авторизационным миддлваром, проверяющим наличие права "world"
  • методы, принимающие в запросе JSON должны иметь миддлвар проверяющий Content-Type. передавать должны только json
  • метод 4) должен иметь accept миддлвар, отдающий xml или json
  • метод 5) должен принимать employeeId через path-параметр (http://localhost:8000/api/v1/{employeeId}). для этого иожно использовать библиотеку https://github.com/gorilla/mux
  • при запросах в БД необходимо передавать контекст запроса (r.Context()). Если клиент сервиса перестал ожидать ответ, запрос в базу должен прекращаться

Задание 2.

Добавить технический метод GET /tech/info, который вернет JSON с информацией о приложении:

{ 
	"name": "employees",
	"version": "1.0.0"
}

Вспомогательная литература:

  • Building RESTful Web services with Go.pdf
  • The_Ultimate_Guide_To_Building_Database-Driven_Apps_with_Go.pdf
  • Clean_Code.pdf

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Languages