Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- В ходе обучения дисциплине ИТ-сервисы было создано rest-приложение, которое представляет список людей с возможностью их добавления или удаления. При создании приложения была использована операционная система Ubuntu 16.10 вместе с установленными Java, IntelliJ IDEA и Maven. Алгоритм создания приложения выглядит следующим образом:
- • Обратимся к <a href="https://spring.io/guides/gs/accessing-data-rest/">туториалу</a> по созданию rest-сервиса. Создадим объект, который будет использоваться для хранения информации о человеке:
- [code language="java" title="src/main/java/com/example/demo/Person.java"]
- package com.example.demo;
- import lombok.Data;
- import javax.persistence.Entity;
- import javax.persistence.GeneratedValue;
- import javax.persistence.Id;
- @Data
- @Entity
- public class Person {
- @Id
- @GeneratedValue
- private long id;
- private String firstName;
- private String lastName;
- }
- [/code]
- Далее создадим репозиторий в качестве интерфейса для взаимодействия с вышеописанным классом:
- [code language="java" title="src/main/java/com/example/demo/PersonRepository.java"]
- package com.example.demo;
- import org.springframework.data.repository.PagingAndSortingRepository;
- import org.springframework.data.repository.query.Param;
- import org.springframework.data.rest.core.annotation.RepositoryRestResource;
- import java.util.List;
- @RepositoryRestResource(collectionResourceRel = "people", path = "people")
- public interface PersonRepository extends PagingAndSortingRepository<Person, Long> {
- List<Person> findByLastName(@Param("name") String name);
- }
- [/code]
- Теперь создадим и запустим приложение:
- [code language="java" title="src/main/java/com/example/demo/Bi3PavlishinaNew3Application.java"]
- package com.example.demo;
- import org.springframework.boot.SpringApplication;
- import org.springframework.boot.autoconfigure.SpringBootApplication;
- @SpringBootApplication
- public class Bi3PavlishinaNew3Application {
- public static void main(String[] args) {
- SpringApplication.run(Bi3PavlishinaNew3Application.class, args);
- }
- }
- [/code]
- С помощью команды curl можно проверить работоспособность приложения на localhost:8080:
- <ol>
- <li>Обратимся к корню нашего API;</li>
- <li>Проверим список людей (пока он пуст);</li>
- <li>Добавим человека в список;</li>
- <li>Проверим список людей еще раз;</li>
- <li>Выведем информацию по первому человеку.</li>
- </ol>
- [code language="bash"]
- curl http://localhost:8080
- curl http://localhost:8080/people
- curl -i -X POST -H "Content-Type:application/json" -d "{ \"firstName\" : \"August\", \"lastName\" : \"Ames\" }" http://localhost:8080/people
- curl http://localhost:8080/people
- curl http://localhost:8080/people/1
- [/code]
- Следуя <a href="https://spring.io/guides/gs/securing-web/">следующему туториалу</a> по безопасности веб-приложения, создадим авторизацию и отображение в web. Для этого создадим файлы list.html, login.html, WebController.java и WebSecurityConfig.java. <a href="https://github.com/tanyapavlishina/bi3_java_rest">Здесь</a> можно посмотреть содержимое файлов на моем Github.
- Теперь подготовим приложение к релизу Heroku. Для этого в properties напишем:
- [code language="java" title="src/main/resources/application.properties"]
- spring.data.rest.base-path=/api
- spring.jpa.generate-ddl=true
- [/code]
- Далее, чтобы наше приложение отображалось онлайн, пропишем в зависимости использование Postgre:
- [code language="xml"]
- <dependency>
- <groupId>org.postgresql</groupId>
- <artifactId>postgresql</artifactId>
- </dependency>
- [/code]
- Теперь разместим наш код на Github, создав <a href="https://github.com/tanyapavlishina/bi3_java_rest">новый репозиторий</a>. Затем в коде пишем:
- [code language="bash"]
- git init
- git add .
- git commit -m "apparently i did something…"
- git remote add origin https://github.com/lainiwa/bi3_java_rest.git
- git push -u origin master
- [/code]
- Деплоим на Heroku:
- [code language="bash"]
- heroku:heroku login
- heroku create
- git push heroku master
- heroku open
- [/code]
- Реквизиты (user: user, password: password) настраиваются в файле WebSecurityConfig.java.
- Теперь проверим, что все работает:
- <ol>
- <li>Добавим пятерых человек;</li>
- <li>Они отображаются в списке;</li>
- <li>Теперь удаляем человека на пятом месте.</li>
- </ol>
- [code language="bash"]
- curl -u admin:password -i -X POST -H "Content-Type:application/json" -d "{ \"firstName\" : \"August\", \"lastName\" : \"Ames\" }" https://tanya-rest.herokuapp.com/api/people
- curl -u admin:password -i -X POST -H "Content-Type:application/json" -d "{ \"firstName\" : \"Tori\", \"lastName\" : \"Black\" }" https://tanya-rest.herokuapp.com/api/people
- curl -u admin:password -i -X POST -H "Content-Type:application/json" -d "{ \"firstName\" : \"Sasha\", \"lastName\" : \"Grey\" }" https://tanya-rest.herokuapp.com/api/people
- curl -u admin:password -i -X POST -H "Content-Type:application/json" -d "{ \"firstName\" : \"Stoya\", \"lastName\" : \"Sidya\" }" https://tanya-rest.herokuapp.com/api/people
- curl -u admin:password -i -X DELETE -H "Content-Type:application/json" https://tanya-rest.herokuapp.com/api/people/5
- [/code]
- Результат:
- [gallery ids="168,169" type="slideshow" link="none"]
- Вывод: в ходе данной работы мы создали rest-приложение и задеплоили его на Heroku.
- <strong>Результат: </strong><strong><a href="https://github.com/tanyapavlishina/bi3_java_rest">код</a> и <a href="https://tanya-rest.herokuapp.com">приложение</a>.</strong>
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement