HEAL DSpace

Dynamic analysis of inter-endpoint dependencies in RESTful APIs

Αποθετήριο DSpace/Manakin

Εμφάνιση απλής εγγραφής

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


Αρχεία σε αυτό το τεκμήριο

Οι παρακάτω άδειες σχετίζονται με αυτό το τεκμήριο:

Αυτό το τεκμήριο εμφανίζεται στην ακόλουθη συλλογή(ές)

Εμφάνιση απλής εγγραφής

Αναφορά Δημιουργού-Μη Εμπορική Χρήση-Όχι Παράγωγα Έργα 3.0 Ελλάδα Εκτός από όπου ορίζεται κάτι διαφορετικό, αυτή η άδεια περιγράφεται ως Αναφορά Δημιουργού-Μη Εμπορική Χρήση-Όχι Παράγωγα Έργα 3.0 Ελλάδα