Code Monkey home page Code Monkey logo

lab1's Introduction

Build Status

Технология разработки программного обеспечения

Лабораторная работа №1: создание микросервиса на Spring Boot с базой данных

Сметанин Андрей Михайлович, Группа 3МБД2001

Цель лабораторной работы:

Целью лабораторной работы является знакомство с проектированием многослойной архитектуры Web-API (веб-приложений, микро-сервисов).

Приложение представляет из себя простой микросервис, реализующий CRUD на примере внутренней телефонной базы. Для работы приложения требуется запущенная БД postgresql.

Подготовка базы данных

В файле ./src/main/resources/application.properties следует указать в параметре spring.datasource.username = имя пользователя для доступа в БД, в параметре spring.datasource.password = пароль для доступа к БД. В параметре spring.datasource.url = необходимо указать адрес для доступа к БД, например для доступа к БД запущенной на локальном компьютере значение будет jdbc:postgresql://localhost:5432/postgresql, для БД запущенной в docker на локальной машине значение будет jdbc:postgresql://172.17.0.1:5432/postgresql.
Настройка базы данных осуществляется с помощью ./src/main/resources/schema.sql. Для этого необходимо выполнить команду psql -h <адрес_БД> -p <порт_БД> -U <имя_пользователя> -d public -f "schema.sql" .
Тестовые данные для БД находятся в ./src/main/resources/data.sql . Для этого необходимо выполнить команду psql -h <адрес_БД> -p <порт_БД> -U <имя_пользователя> -d public -f "data.sql" .
Также можно установить postgresql с помощью docker использую комманды docker pull postgres для скачивания и docker run -e POSTGRES_PASSWORD=root -p 5432:5432 postgres для запуска.

Клонирование репозитария

Для клонирования репозитория необходимо выполнить команду git clone https://github.com/delock1/lab1.git или же скачать zip-архив и распаковать его.

Сборка проекта с помощью Maven

Сборка приложения осуществляется при помощи автоматической системы сборки проектов Maven. Для сборки необходимо выполнить команду mvn package -Dmaven.test.skip=true(с пропуском тестирования) находясь в директории проекта. После окончания выполнения команды появится папка target в которой находится скомпилированный код и файл apilab-1.0.jar.

Сборка и запуск Docker-образа

Для сборки Docker образа следует выполнить команду docker build -t apilab:v1 . находясь в директории с Dockerfile и собранным apilab-1.0.jar .
Запуск осуществляется командой docker run -p 8080:8080 apilab:v1 , где первым указывается порт в локальной системе, а вторым порт docker.

Примеры запросов к apilab .

Формат JSON: {name: "string", department: "string ",room: integer, callnumber: integer}

Получить список всех номеров телефонов:

curl -X GET http://127.0.0.1:8080/api/v1/persons В ответ будет получен JSON.

Получить запись по id:

curl -X GET http://127.0.0.1:8080/api/v1/persons{id} В ответ будет получен JSON с результатом.

Добавить запись:

curl -X POST http://127.0.0.1:8080/api/v1/persons -d ‘{«name»: «Имя″, "department": "Отдел", "room": 101, "callnumber": 155}’ -H «Content-Type:application/json» В ответ будет получен статус 200 ОК.

Удалить запись:

curl -i -X DELETE http://127.0.0.1:8080/api/v1/persons/del/{id} В ответ будет получен статус 204 No Content.

Также приложение возвращает значение hostname:

curl -X GET http://127.0.0.1:8080/api/v1/status В ответ будет получен JSON в виде {hostname: "hostname"}.

Лабораторная работа №3: CI/CD и деплой приложения в Heroku

Цель работы:

Целью лабораторной работы является знакомство с CI/CD и его реализацией на примере Travis CI и Heroku.

Ссылка на развернутое приложение:

Ссылка на развернутое приложение

lab1's People

Contributors

delock1 avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.