dc.contributor.author | Γεροκωνσταντής, Δημήτριος-Δαυίδ![]() |
el |
dc.contributor.author | Gerokonstantis, Dimitrios-Dafid![]() |
en |
dc.date.accessioned | 2025-04-14T09:44:12Z | |
dc.date.available | 2025-04-14T09:44:12Z | |
dc.identifier.uri | https://dspace.lib.ntua.gr/xmlui/handle/123456789/61744 | |
dc.identifier.uri | http://dx.doi.org/10.26240/heal.ntua.29440 | |
dc.rights | Αναφορά Δημιουργού-Μη Εμπορική Χρήση-Όχι Παράγωγα Έργα 3.0 Ελλάδα | * |
dc.rights.uri | http://creativecommons.org/licenses/by-nc-nd/3.0/gr/ | * |
dc.subject | REST APIs | en |
dc.subject | HTTP | en |
dc.subject | JSON | en |
dc.subject | Postman | en |
dc.subject | Visual Paradigm | en |
dc.subject | Node.js | en |
dc.subject | MongoDB | en |
dc.subject | Python | en |
dc.subject | Man-in-the-middle | en |
dc.subject | Τεκμηρίωση Λογισμικού | el |
dc.subject | Ανάλυση Εξαρτήσεων | el |
dc.subject | Διεπαφές Προγραμματισμού Εφαρμογών | el |
dc.subject | Περιπτώσεις Χρήσης | el |
dc.subject | Γράφος Εξαρτήσεων | el |
dc.subject | Αρχεία Καταγραφής | el |
dc.title | Dynamic analysis of inter-endpoint dependencies in RESTful APIs | en |
dc.title | Development of a dynamic method for analyzing interdependencies between the endpoints of RESTful APIs | en |
heal.type | bachelorThesis | |
heal.classification | API analysis | en |
heal.language | en | |
heal.access | free | |
heal.recordProvider | ntua | el |
heal.publicationDate | 2024-11-14 | |
heal.abstract | In an era where software products are used in every aspect of everyday life, mechanisms for their efficient architecture, management and availability are essential. An Application Programming Interface (API), particularly a REST API, is a widely adopted mechanism through which software components expose their functionalities to other components, applications or users. REST APIs define a set of endpoints, each exposing a specific functionality of the underlying software. However, the efficient and correct utilization of an API requires a thorough understanding of both the functionality and structure of each endpoint individually, as well as the interactions among them. Often, API calls must adhere to a specific order, as invoking an endpoint correctly may require data returned from a call to another endpoint. Detecting these dependencies guides optimal API utilization and reveals valuable workflows in a way that can accelerate development. Although current API documentation - such as OpenAPI specifications or Postman Collections - offers structural details, descriptions and examples, it lacks sufficient information to clarify endpoint interactions and dependencies. This thesis first introduces an existing static method developed in a previous study, for identifying dependencies by analyzing Postman Collections. While this method successfully reveals such dependencies, it is constrained by the need for a Postman Collection - which is often lacking - and the limited accuracy and completeness of its results. This study builds on previous work, and introduces a new dynamic approach to identify dependencies by capturing and analyzing real-world API calls through a mediator system, thereby incorporating dynamic business logic insights into the analysis. This method significantly enhances the quality of results and enables the generation of dependency documentation even for APIs that are entirely undocumented. Finally, the dynamic method is integrated into the RADAR system, which provides an environment for visualizing and analyzing API dependencies identified through both static and dynamic analysis. | en |
heal.abstract | Σε μια εποχή κατά την οποία τα προϊόντα λογισμικού χρησιμοποιούνται σε κάθε πτυχή της καθημερινότητας, κρίνεται απαραίτητη η ύπαρξη μηχανισμών για την εξασφάλιση της διαθεσιμότητας και της αποδοτικής τους διαχείρισης και αρχιτεκτονικής. Τα APIs (Application Programming Interfaces) και ειδικότερα τα REST APIs, αποτελούν έναν ευρέως διαδεδομένο μηχανισμό μέσω του οποίου ένα λογισμικό μπορεί να κάνει τις λειτουργικότητές του διαθέσιμες σε άλλα λογισμικά, εφαρμογές και χρήστες. Τα REST APIs ορίζουν ένα σύνολο από endpoints, καθένα από τα οποία παρέχει πρόσβαση σε μια συγκεκριμένη λειτουργικότητα του λογισμικού. Ωστόσο, η αποδοτική και ορθή χρήση ενός API απαιτεί την εις βάθος κατανόηση τόσο της λειτουργικότητας και της δομής καθενός endpoint ξεχωριστά όσο και της αλληλεπίδρασης μεταξύ τους. Συχνά, οι κλήσεις προς το API οφείλουν να ακολουθούν μια συγκεκριμένη διάταξη, καθώς η επιτυχής κλήση σε ένα endpoint ενδέχεται να απαιτεί δεδομένα εισόδου που έχουν παραχθεί από μια προηγούμενη κλήση σε κάποιο άλλο endpoint. Ο εντοπισμός τέτοιων σχέσεων εξάρτησης καθοδηγεί την βέλτιστη και ορθή χρήση του API, ενώ συγχρόνως αποκαλύπτει χρήσιμες ροές δεδομένων και λογικές ακολουθίες κλήσεων, πολύτιμες για την επιτάχυνση της διαδικασίας ανάπτυξης λογισμικού. Ενώ η υπάρχουσα τεκμηρίωση των APIs, όπως παρέχεται από OpenAPI Specifications και Postman Collections, περιλαμβάνει χρήσιμες δομικές λεπτομέρειες, περιγραφές και παραδείγματα χρήσης, υστερεί στην παροχή πληροφοριών σχετικών με την αλληλεπίδραση και τις εξαρτήσεις μεταξύ των endpoints. Η παρούσα εργασία αρχικά περιγράφει μια υπάρχουσα στατική μέθοδο εντοπισμού τέτοιων εξαρτήσεων η οποία αναπτύχθηκε σε προηγούμενη εργασία και βασίζεται στην ανάλυση των Postman Collections. Ενώ αυτή η μέθοδος πράγματι αποκαλύπτει τις εξαρτήσεις μεταξύ των endpoints, περιορίζεται από την απαίτηση διαθεσιμότητας ενός Postman Collection - το οποίο όμως συχνά λείπει - και από την ανεπαρκή ακρίβεια και πληρότητα των αποτελεσμάτων. Η παρούσα μελέτη παρουσιάζει μια νέα δυναμική προσέγγιση για τον εντοπισμό εξαρτήσεων μέσω της καταγραφής και ανάλυσης κλήσεων προς το API κατά τη διάρκεια της πραγματικής του χρήσης εγκαθιστώντας ένα ενδιάμεσο σύστημα (Man In the Middle) και έτσι ενσωματώνοντας στην ανάλυση πληροφορίες για την λογική και τα σενάρια που πραγματικά εκτελούνται στο λογισμικό. Αυτή η μέθοδος βελτιώνει σημαντικά την ποιότητα των αποτελεσμάτων και επιτρέπει την δημιουργία τεκμηρίωσης εξαρτήσεων ακόμη και για APIs που δεν συνοδεύονται από κανένα είδος τεκμηρίωσης. Τελικά, η δυναμική ανάλυση ενσωματώνεται στο σύστημα RADAR, το οποίο παρέχει μια διεπαφή για την οπτικοποίηση και την ανάλυση των εξαρτήσεων που εντοπίζονται μέσω της στατικής αλλά και της δυναμικής ανάλυσης. | el |
heal.advisorName | Βεσκούκης, Βασίλειος | el |
heal.committeeMemberName | Παπασπύρου, Νικόλαος | el |
heal.committeeMemberName | Σαγώνας, Κωνσταντίνος | el |
heal.academicPublisher | Εθνικό Μετσόβιο Πολυτεχνείο. Σχολή Ηλεκτρολόγων Μηχανικών και Μηχανικών Υπολογιστών. Τομέας Τεχνολογίας Πληροφορικής και Υπολογιστών | el |
heal.academicPublisherID | ntua | |
heal.numberOfPages | 126 σ. | el |
heal.fullTextAvailability | false |
Οι παρακάτω άδειες σχετίζονται με αυτό το τεκμήριο: