ПРОЄКТУВАННЯ ТА РОЗРОБКА WEB-СЕРВІСУ ДЛЯ ГЕНЕРУВАННЯ ТА РОЗСИЛКИ PDF-ДОКУМЕНТІВ
Анотація
В роботі розглядається проєктування та розробка web-сервісу для автоматичної генерації, розсилки на email та перевірки PDF-сертифікатів або інших PDF-документів, який може працювати незалежно або в інтеграції з іншими програмними продуктами. Задача генерації PDF-документу реалізується з допомогою бібліотеки iText, що дозволяє створювати файли різними способами. В цьому проєкті PDF-файли генеруються на основі HTML-шаблонів, що дозволяє просто створювати документи різної розмітки та різного оформлення. Для розсилки електронних листів використовується SMPT-сервер від GMail. Створення листів здійснюється з допомогою бібліотеки JavaMailSender. Для перевірки PDF-сертифікату на справжність є дві можливості. Можна перейти по посиланню, яке розміщене на сертифікаті. У випадку, якщо інформація про такий документ є в базі даних, буде виводитися назва заходу та ім’я учасника. Якщо інформації в базі даних немає, то буде виведена інформація про це. Інший спосіб – введення коду з документу в спеціальне поле на web-сторінці. Програмний продукт розроблений у вигляді web-сервісу, що реалізує підхід REST. Проєкт реалізований на мові програмування Java з використанням сімейства фреймворків Spring: Spring Boot, Spring Data JPA, Spring Web, Spring Security. Проєкт реалізує патерн проєктування Controller-Service-Repository і складається із відповідних рівнів. На рівні entity описані сутності з бази даних у вигляді об’єктів. Тобто для кожної із таблиць в базі даних створений клас, поля якого відповідають атрибутам таблиці. На рівні репозиторію описуються запити до бази даних з використанням інтерфейсу JpaRepository. Логіка роботи web-сервісу реалізована на рівні сервісів. Для виконання кожної із задач написаний окремий клас-сервіс або кілька класів, якщо задача велика і її доцільно розбити на підзадачі. REST-контролери відповідають за зовнішній інтерфейс. Для кожної із дій, які може здійснити користувач або інший застосунок, буде створена окрема адреса доступу (endpoint). Основні дії: створення заходу, отримання списку заходів, видалення заходів, додавання інформації про учасника заходу, отримання списку учасників, генерація сертифікатів, розсилка сертифікатів, автентифікація користувачів, перевірка наявності сертифіката по унікальному коду. Web-сервіс має простий інтерфейс користувача у вигляді web-сторінки, на якій можна перевірити сертифікат на справжність. Для роботи адміністраторів створений кабінет за допомогою бібліотеки Swagger.
Посилання
2. Bülthoff, Frederik, and Maria Maleshkova. RESTful or RESTless–current state of today’s top web APIs. In The Semantic Web: ESWC 2014 Satellite Events: ESWC 2014 Satellite Events, Anissaras, Crete, Greece, May 25-29, 2014, Revised Selected Papers 11, P. 64–74.
3. Зінченко А. Ю. Проектування розподілених інформаційних систем на основі використання технології слабозв’язаних компонентів. Системи та технології, 1(63), 2022. С. 5–14. https://doi.org/10.32782/2521-6643-2022.1-63.1
4. Fielding, Roy Thomas. Architectural styles and the design of network-based software architectures. University of California, Irvine, 2000.
5. Neumann, Andy, Nuno Laranjeiro, and Jorge Bernardino. An analysis of public REST web service APIs. IEEE Transactions on Services Computing 14, No. 4, 2018, P. 957–970.
6. Chen, Yixiong, Yang Yang, Zhanyao Lei, Mingyuan Xia, and Zhengwei Qi. Bootstrapping automated testing for RESTful web services. Fundamental Approaches to Software Engineering: 24th International Conference, FASE 2021, Held as Part of the European Joint Conferences on Theory and Practice of Software, ETAPS 2021, Luxembourg City, Luxembourg, March 27 – April 1, 2021, Proceedings 24, pp. 46–66. Springer International Publishing, 2021.
7. Massaga, Aristide, and Georges Edouard Kouamou. Towards a Framework for Evaluating Technologies for Implementing Microservices Architectures. Journal of Software Engineering and Applications 14, No. 8, 2021, P. 442–453.
8. Коломієць О. Е. Проєктування та розроблення сервісної архітектури управління бізнес-процесами університету. Генерація PDF документів засобами системи : кваліфікаційна робота на здобуття ступеня вищої освіти «магістр». Херсонський держ. ун-т. Херсон : ХДУ, 2021. 54 с.
9. Lowagie, Bruno. IText in Action. Simon and Schuster, 2010.
10. Bluck, Alan S. PDF Document Creation Using Java. In IBM Software Systems Integration: With IBM MQ Series for JMS, IBM FileNet Case Manager, and IBM Business Automation Workflow, p. 991-1269. Berkeley, CA: Apress, 2023. https://doi.org/10.1007/978-1-4842-8861-0_6
11. Provos, Niels, and David Mazieres. Bcrypt algorithm. USENIX. 1999.
12. Fowler, Martin. Patterns of Enterprise Application Architecture: Pattern Enterpr Applica Arch. Addison- Wesley, 2012.
13. Walls, Craig. Spring in action. Simon and Schuster, 2022.
14. Dos Santos, Jéssica Soares, Leonardo Guerreiro Azevedo, Elton FS Soares, Raphael Melo Thiago, and Viviane Torres da Silva. Analysis of Tools for REST Contract Specification in Swagger/OpenAPI. ICEIS (2), 2020. P. 201–208.
15. Miell, Ian, and Aidan Sayers. Docker in practice. Simon and Schuster, 2019.