Advertisement
Guest User

Untitled

a guest
Jun 21st, 2017
187
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 7.32 KB | None | 0 0
  1. В ходе обучения дисциплине ИТ-сервисы было создано rest-приложение, которое представляет список людей с возможностью их добавления или удаления. При создании приложения была использована операционная система Ubuntu 16.10 вместе с установленными Java, IntelliJ IDEA и Maven. Алгоритм создания приложения выглядит следующим образом:
  2.  
  3. • Обратимся к <a href="https://spring.io/guides/gs/accessing-data-rest/">туториалу</a> по созданию rest-сервиса. Создадим объект, который будет использоваться для хранения информации о человеке:
  4.  
  5. [code language="java" title="src/main/java/com/example/demo/Person.java"]
  6. package com.example.demo;
  7.  
  8. import lombok.Data;
  9.  
  10. import javax.persistence.Entity;
  11. import javax.persistence.GeneratedValue;
  12. import javax.persistence.Id;
  13.  
  14. @Data
  15. @Entity
  16. public class Person {
  17. @Id
  18. @GeneratedValue
  19. private long id;
  20. private String firstName;
  21. private String lastName;
  22. }
  23. [/code]
  24.  
  25. Далее создадим репозиторий в качестве интерфейса для взаимодействия с вышеописанным классом:
  26.  
  27. [code language="java" title="src/main/java/com/example/demo/PersonRepository.java"]
  28. package com.example.demo;
  29.  
  30. import org.springframework.data.repository.PagingAndSortingRepository;
  31. import org.springframework.data.repository.query.Param;
  32. import org.springframework.data.rest.core.annotation.RepositoryRestResource;
  33.  
  34. import java.util.List;
  35.  
  36. @RepositoryRestResource(collectionResourceRel = "people", path = "people")
  37. public interface PersonRepository extends PagingAndSortingRepository<Person, Long> {
  38.  
  39. List<Person> findByLastName(@Param("name") String name);
  40. }
  41. [/code]
  42.  
  43. Теперь создадим и запустим приложение:
  44.  
  45. [code language="java" title="src/main/java/com/example/demo/Bi3PavlishinaNew3Application.java"]
  46. package com.example.demo;
  47.  
  48. import org.springframework.boot.SpringApplication;
  49. import org.springframework.boot.autoconfigure.SpringBootApplication;
  50.  
  51. @SpringBootApplication
  52. public class Bi3PavlishinaNew3Application {
  53.  
  54. public static void main(String[] args) {
  55. SpringApplication.run(Bi3PavlishinaNew3Application.class, args);
  56. }
  57. }
  58. [/code]
  59.  
  60. С помощью команды curl можно проверить работоспособность приложения на localhost:8080:
  61. <ol>
  62. <li>Обратимся к корню нашего API;</li>
  63. <li>Проверим список людей (пока он пуст);</li>
  64. <li>Добавим человека в список;</li>
  65. <li>Проверим список людей еще раз;</li>
  66. <li>Выведем информацию по первому человеку.</li>
  67. </ol>
  68. [code language="bash"]
  69. curl http://localhost:8080
  70. curl http://localhost:8080/people
  71. curl -i -X POST -H "Content-Type:application/json" -d "{ \"firstName\" : \"August\", \"lastName\" : \"Ames\" }" http://localhost:8080/people
  72. curl http://localhost:8080/people
  73. curl http://localhost:8080/people/1
  74. [/code]
  75.  
  76. Следуя <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.
  77. Теперь подготовим приложение к релизу Heroku. Для этого в properties напишем:
  78.  
  79. [code language="java" title="src/main/resources/application.properties"]
  80. spring.data.rest.base-path=/api
  81. spring.jpa.generate-ddl=true
  82. [/code]
  83.  
  84. Далее, чтобы наше приложение отображалось онлайн, пропишем в зависимости использование Postgre:
  85.  
  86. [code language="xml"]
  87. <dependency>
  88. <groupId>org.postgresql</groupId>
  89. <artifactId>postgresql</artifactId>
  90. </dependency>
  91. [/code]
  92.  
  93. Теперь разместим наш код на Github, создав <a href="https://github.com/tanyapavlishina/bi3_java_rest">новый репозиторий</a>. Затем в коде пишем:
  94.  
  95. [code language="bash"]
  96. git init
  97. git add .
  98. git commit -m "apparently i did something…"
  99. git remote add origin https://github.com/lainiwa/bi3_java_rest.git
  100. git push -u origin master
  101. [/code]
  102.  
  103. Деплоим на Heroku:
  104.  
  105. [code language="bash"]
  106. heroku:heroku login
  107. heroku create
  108. git push heroku master
  109. heroku open
  110. [/code]
  111.  
  112. Реквизиты (user: user, password: password) настраиваются в файле WebSecurityConfig.java.
  113. Теперь проверим, что все работает:
  114. <ol>
  115. <li>Добавим пятерых человек;</li>
  116. <li>Они отображаются в списке;</li>
  117. <li>Теперь удаляем человека на пятом месте.</li>
  118. </ol>
  119. [code language="bash"]
  120. curl -u admin:password -i -X POST -H "Content-Type:application/json" -d "{ \"firstName\" : \"August\", \"lastName\" : \"Ames\" }" https://tanya-rest.herokuapp.com/api/people
  121. curl -u admin:password -i -X POST -H "Content-Type:application/json" -d "{ \"firstName\" : \"Tori\", \"lastName\" : \"Black\" }" https://tanya-rest.herokuapp.com/api/people
  122. curl -u admin:password -i -X POST -H "Content-Type:application/json" -d "{ \"firstName\" : \"Sasha\", \"lastName\" : \"Grey\" }" https://tanya-rest.herokuapp.com/api/people
  123. curl -u admin:password -i -X POST -H "Content-Type:application/json" -d "{ \"firstName\" : \"Stoya\", \"lastName\" : \"Sidya\" }" https://tanya-rest.herokuapp.com/api/people
  124. curl -u admin:password -i -X DELETE -H "Content-Type:application/json" https://tanya-rest.herokuapp.com/api/people/5
  125. [/code]
  126.  
  127. Результат:
  128.  
  129. [gallery ids="168,169" type="slideshow" link="none"]
  130.  
  131. Вывод: в ходе данной работы мы создали rest-приложение и задеплоили его на Heroku.
  132.  
  133. <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