Details
| Title | Интерактивная система автоматического проектирования GraphQL API: выпускная квалификационная работа бакалавра: направление 02.03.03 «Математическое обеспечение и администрирование информационных систем» ; образовательная программа 02.03.03_01 «Интеллектуальные информационные системы и обработка данных» = An Interactive System for Automatic GraphQL API Design |
|---|---|
| Creators | Ващилко Алексей Витальевич |
| Scientific adviser | Щербаков Николай |
| Organization | Санкт-Петербургский политехнический университет Петра Великого. Институт компьютерных наук и кибербезопасности |
| Imprint | Санкт-Петербург, 2026 |
| Collection | Выпускные квалификационные работы ; Общая коллекция |
| Subjects | Graphql ; Graphql-схема ; DSL ; AST ; автоматическая генерация API ; веб-приложение ; автоматизация проектирования ; Graphql schema ; automatic API generation ; web residence ; design automation |
| Document type | Bachelor graduation qualification work |
| Language | Russian |
| Level of education | Bachelor |
| Speciality code (FGOS) | 02.03.03 |
| Speciality group (FGOS) | 020000 - Компьютерные и информационные науки |
| DOI | 10.18720/SPBPU/3/2026/vr/vr26-3973 |
| Rights | Доступ по паролю из сети Интернет (чтение) |
| Additionally | New arrival |
| Record key | ru\spstu\vkr\42699 |
| Record create date | 8/21/2026 |
Allowed Actions
–
Action 'Read' will be available if you login or access site from another network
| Group | Anonymous |
|---|---|
| Network | Internet |
В данной работе рассмотрены методы автоматизации проектирования GraphQL API на основе формализованных пользовательских требований. Проведён анализ технологии GraphQL, её преимуществ по сравнению с REST-подходом, а также исследованы существующие решения автоматической генерации GraphQL-схем. Выявлены ограничения существующих подходов, связанные с жёсткой привязкой к структуре базы данных, REST-спецификациям или необходимостью ручного проектирования схем. Предложен алгоритм автоматического синтеза GraphQL-схемы на основе формализованного описания запросов к данным. В качестве промежуточных представлений используются Domain Specific Language (DSL) и Abstract Syntax Tree (AST). Разработанный алгоритм включает этапы формирования пользовательского запроса, нормализации данных, построения AST, анализа связей между сущностями, валидации модели и генерации итоговой GraphQL-схемы. Разработано веб-приложение, реализующее интерактивное проектирование GraphQL API. Реализованы механизмы формирования DSL-запросов, автоматического построения AST и генерации GraphQL-схемы с поддержкой CRUD-операций, Query, Mutation и связей между сущностями. Проведено тестирование разработанного приложения, включающее проверку формирования полей, генерации DSL, построения AST, генерации GraphQL-схемы и обработки ошибок. Результаты тестирования показали корректную работу всех функциональных модулей системы и устойчивость к ошибкам пользовательского ввода.
This paper examines methods for automating GraphQL API design based on formalized requirements. An analysis of GraphQL technology and its advantages over the REST approach is provided, along with a study of existing solutions for automatic GraphQL schema generation. Limitations of existing approaches related to tight coupling to database provisioning, REST specifications, or the need for manual schema design are identified. An algorithm for synthesizing GraphQL schemas based on a formalized description of a data query is proposed. A domain-specific language (DSL) and an abstract syntax tree (AST) are used as intermediate representations. The developed algorithm includes the steps of generating a user query, data normalization, AST construction, entity relationship analysis, model validation, and generating the final GraphQL schema. A web application implementing interactive GraphQL API design was developed. Mechanisms for generating DSL queries, automatically constructing ASTs, and generating GraphQL schemas with support for CRUD operations, queries, mutations, and entity relationships were implemented. Testing of the developed application was performed, including validation, field generation, DSL generation, AST construction, GraphQL schema generation, and error handling. The results confirm the correct operation of all installed system modules and their robustness to user input errors.
| Network | User group | Action |
|---|---|---|
| ILC SPbPU Local Network | All |
|
| Internet | Authorized users SPbPU |
|
| Internet | Anonymous |
|