Τα web APIs είναι μία τεχνολογία με σύντομη ιστορία καθώς πρωτοεμφανίστηκαν γύρω στο 2000. Από τότε ο αριθμός των κλήσεων API έχει πολλαπλασιαστεί και έχουν επεκταθεί σε πολλούς τομείς των επιχειρήσεων ακολουθώντας την εξέλιξη του διαδικτύου. Η πρώτη εμφάνισή τους ήταν σχετικά με το εμπόριο και τα κοινωνικά δίκτυα και στη συνέχεια χρησιμοποιήθηκαν για marketing, χαρτογράφηση και cloud computing. Τελευταία τάση των web APIs είναι η χρήση τους στα κινητά.
Για την διευκόλυνση των προγραμματιστών σχετικά με την ανάπτυξη web APIs έχουν δημιουργηθεί πρότυπα και μοντέλα που συστηματοποιούν την δομή και την γλώσσα τους. Τα τρία πρότυπα που αναλύονται στην παρούσα εργασία είναι το Swagger, η RAML και το API-Blueprint. Το Swagger είναι ένα πλήρες πλαίσιο για την περιγραφή, δημιουργία και κατανάλωση των RESTful υπηρεσιών web. Κύριος στόχος του είναι οι clients και τα συστήματα τεκμηρίωσης να ανανεώνονται στον ίδιο ρυθμό με τον server. Η RAML είναι ένας απλός και περιεκτικός τρόπος για την περιγραφή των πρακτικά RESTful APIs. Ενθαρρύνει την επαναχρησιμοποίηση, διευκολύνει την εύρεση και την ανταλλαγή μοτίβων και έχει στόχο την επικράτηση των καλύτερων πρακτικών. Τέλος, Το API Blueprint παρέχει εξαιρετικά εργαλεία για όλο τον κύκλο ζωής του API. Κάνει τον σχολιασμό σχετικά με κάποιο API εύκολο και παράγει τεκμηρίωση αυτόματα.
Στην συνέχεια παρουσιάζεται ο ρόλος και η σημασία του σημασιολογικού ιστού, ο οποίος αποτελεί ένα νέο στάδιο στην ιστορία του διαδικτύου και έχει στόχο να κάνει ευκολότερη την σύνδεση των δεδομένων μεταξύ τους και την δημιουργία Linked Data όπως ορίστηκαν από τον Berners-Lee. Με τον τρόπο αυτό πολλές διαδικασίες που απαιτούν την παρουσία του ανθρώπου θα μπορέσουν να αυτοματοποιηθούν. Τον σημασιολογικό ιστό προσπαθεί να εκμεταλλευτεί η Hydra. Η Hydra είναι μία προσπάθεια που στόχο έχει να απλοποιήσει την ανάπτυξη των hypermedia-driven web APIs. Προσπαθεί να δημιουργήσει ένα καθολικό πρότυπο που θα συνδυάζει τα πλεονεκτήματα των επιμέρους προτύπων που αναλύθηκαν και θα χρησιμοποιείται από όλους τους προγραμματιστές ώστε να είναι ευκολότερη η συντήρηση και ανάπτυξη των APIs. Έτσι θα είναι δυνατή η δημιουργία γενικών πελατών API σε αντίθεση με την κατάσταση που επικρατεί σήμερα.
Για την καλύτερη κατανόηση της χρήσης και της λειτουργίας των APIs παρουσιάζεται ένα συγκεκριμένο παράδειγμα που αφορά τις κλήσεις API που εκτελούνται για να ολοκληρωθεί μία αγορά από το eBay μέσω του PayPal. Επιπλέον υπάρχει ενδεικτικά μία μοντελοποίηση των κλήσεων αυτών σύμφωνα με τη Hydra.
Τέλος παρουσιάζεται η σημασία των APIs στην ανάπτυξη μίας επιχείρησης καθώς μπορούν να αποτελέσουν ανταγωνιστικό στοιχείο και να συμβάλλουν καθοριστικά στην ανάπτυξή της.
Web APIs is a technology with a short history as they first came out in 2000. Since then the number of API calls has been increased and APIs have been expanded in many business sectors by following the evolution of web. They first emerged in commerce and social platforms and then they were used for marketing, mapping and cloud computing. The last trend for APIs is related to mobile.
In order developers to easier create web APIs, standards and models have been created that regularize their structure and language. The three standards that are analyzed in this thesis are Swagger, RAML and API-Blueprint. Swagger is a specification and complete framework implementation for describing, producing, consuming, and visualizing RESTful web services. The overarching goal of Swagger is to enable client and documentation systems to update at the same pace as the server. RAML is a simple and succinct way of describing practically-RESTful APIs. It encourages reuse, enables discovery and pattern-sharing, and aims for merit-based emergence of best practices. Finally, API Blueprint gives tools for the whole API lifecycle. It enables comments on an API and generates documentation automatically.
Then the role and meaning of semantic web is presented. Semantic web is the new stage in the history of web and aims to the connection of data and to the creation of Linked Data as they defined by Berners-Lee. In this way, many procedures that demand the presence of a man can be automated. Hydra is an effort to simplify the development of interoperable, hypermedia-driven Web APIs and tries to take advantage of semantic web. Its main goal is to create a global standard that combines the advantages of the individual standards that have already been described and to be used by the majority of the developers. This would result in the easier maintenance and creation of APIs and in the creation of general API clients.
In order to better understand the usage and operation of web APIs a particular example is described. This example is related to the API calls that are executed for the completion of a purchase from eBay by using PayPal. Moreover there is a standardization of these calls according to Hydra.
Finally the significance of the APIs in the evolution of a business is presented. APIs are a competitive element and can contribute substantially in its successful development.