| dc.contributor.author | Pallis, Sotirios
|
en |
| dc.contributor.author | Πάλλης, Σωτήριος
|
el |
| dc.date.accessioned | 2026-05-20T04:35:49Z | |
| dc.date.available | 2026-05-20T04:35:49Z | |
| dc.identifier.uri | https://dspace.lib.ntua.gr/xmlui/handle/123456789/64679 | |
| dc.identifier.uri | http://dx.doi.org/10.26240/heal.ntua.32373 | |
| dc.rights | Αναφορά Δημιουργού-Όχι Παράγωγα Έργα 3.0 Ελλάδα | * |
| dc.rights | Αναφορά Δημιουργού-Όχι Παράγωγα Έργα 3.0 Ελλάδα | * |
| dc.rights.uri | http://creativecommons.org/licenses/by-nd/3.0/gr/ | * |
| dc.subject | Ανίχνευση εξαρτήσεων | el |
| dc.subject | Διαδίκτυο | el |
| dc.subject | Τεκμηρίωση | el |
| dc.subject | Γράφος | el |
| dc.subject | Αλληλουχία Κλήσεων | el |
| dc.subject | OpenAPI | en |
| dc.subject | Documentation | en |
| dc.subject | Dependency Detection | en |
| dc.subject | Graph | en |
| dc.subject | REST | en |
| dc.title | Dependency Detection in REST APIs | en |
| dc.title | Ανίχνευση Εξαρτήσεων σε REST APIs | el |
| heal.type | bachelorThesis | |
| heal.classification | Software Engineering | en |
| heal.classification | Τεχνολογία Λογισμικού | el |
| heal.language | el | |
| heal.language | en | |
| heal.access | free | |
| heal.recordProvider | ntua | el |
| heal.publicationDate | 2025-06-25 | |
| heal.abstract | Modern software systems rarely invoke REST endpoints in isolation; real-world integrations follow data-driven call sequences that are almost never documented explicitly. This thesis investigates how such inter-endpoint dependencies can be recovered automatically from an API’s own specification. We propose a purely static technique that parses an OpenAPI document and applies a two-tier, brute-force matching algorithm: first at object level and then recursively at field level to capture fine-grained producer-consumer relations. The detected links are rendered as directed graphs whose nodes represent endpoints and whose edges are annotated with the shared parameters, offering users an immediate, workflow-oriented view of an unfamiliar API. The approach is implemented in a cross-platform desktop application written in Kotlin Multiplatform with a Compose UI; detection logic, graph generation (Dotlin + Graphviz) and export utilities are encapsulated behind a simple GUI. Evaluation on three heterogeneous specifications—the ENTSO-E energy data API, the canonical Swagger PetStore sample, and PayPal’s Checkout Orders service—produces results that vary in terms of correctness and completeness of the dependencies. It also highlights limitations rooted in poor naming conventions and incomplete schemas, underscoring the importance of high-quality specifications. Although the brute-force strategy sacrifices performance for completeness, run-times remain acceptable for medium-sized APIs, and the methodology lays a solid foundation for future work on semantics-aware matching and dynamic techniques. | en |
| heal.abstract | Τα σύγχρονα συστήματα λογισμικού σπάνια καλούν REST endpoints μεμονωμένα·στην πραγματικότητα ακολουθούν αλληλουχίες κλήσεων που καθοδηγούνται από δεδομένα οι οποίες σπάνια τεκμηριώνονται ρητά. Η παρούσα διπλωματική εξετάζει πώς τέτοιες εξαρτήσεις μεταξύ endpoints μπορούν να βρεθούν αυτόματα από την ίδια την προδιαγραφή ενός API. Προτείνουμε μια αμιγώς στατική τεχνική που αναλύει ένα έγγραφο OpenAPI και εφαρμόζει έναν αλγόριθμο αντιστοίχισης δύο επιπέδων: αρχικά σε επίπεδο αντικειμένων και στη συνέχεια αναδρομικά σε επίπεδο πεδίων, με σκοπό να εντοπίσει λεπτομερείς σχέσεις παραγωγού-καταναλωτή. Οι ανιχνευμένοι δεσμοί απεικονίζονται ως κατευθυνόμενα γραφήματα· οι κόμβοι αντιστοιχούν σε endpoints και οι ακμές σχολιάζονται με τις παραμέτρους που δημιουργούν την εξάρτηση, προσφέροντας στο χρήστη μια διαφορετική σκοπιά ενός άγνωστου API, βασισμένη σε ροές κλήσεων. Η προσέγγιση υλοποιείται ως μια δια-πλατφορμική εφαρμογή γραμμένη σε Kotlin Multiplatform με χρήση Compose για τη διεπαφή χρήστη η λογική ανίχνευσης, η παραγωγή γραφημάτων (Dotlin + Graphviz) και τα εργαλεία εξαγωγής περικλείονται πίσω από μία απλή γραφική διεπαφή. Γίνεται αξιολόγηση σε 3 διαφορετικά APIs - το ενεργειακό API ENTSO-E, το κλασικό δείγμα Swagger PetStore και την υπηρεσία Checkout Orders της PayPal - από την οποία προκύπτουν ποικίλα αποτελέσματα όσον αφορά την εγκυρότητα αλλά και την πληρότητα των εξαρτήσεων. Παράλληλα αναδεικνύει περιορισμούς που οφείλονται σε φτωχές συμβάσεις ονοματοδοσίας και ελλιπή σχήματα, υπογραμμίζοντας τη σημασία ποιοτικών προδιαγραφών. Αν και η στρατηγική brute-force θυσιάζει απόδοση χάριν πληρότητας, οι χρόνοι εκτέλεσης παραμένουν αποδεκτοί για APIs μεσαίου μεγέθους και η μεθοδολογία θέτει στέρεες βάσεις για μελλοντική εργασία σε σημασιολογικά ενημερωμένη αντιστοίχιση και εμπλουτισμό με δυναμικές τεχνικές. | el |
| heal.advisorName | Vescoukis, Vassilios | en |
| heal.advisorName | Βεσκούκης, Βασίλειος | el |
| heal.committeeMemberName | Papaspyrou, Nikolaos | en |
| heal.committeeMemberName | Παρασκευοπούλου, Ζωή | el |
| heal.committeeMemberName | Παπασπύρου, Νικόλαος | el |
| heal.committeeMemberName | Παρασκευοπούλου, Ζωή | el |
| heal.academicPublisher | Εθνικό Μετσόβιο Πολυτεχνείο. Σχολή Ηλεκτρολόγων Μηχανικών και Μηχανικών Υπολογιστών. | el |
| heal.academicPublisherID | ntua | |
| heal.numberOfPages | 97 | |
| heal.fullTextAvailability | false | |
| heal.fullTextAvailability | false |
The following license files are associated with this item: