Change search
CiteExportLink to record
Permanent link

Direct link
Cite
Citation style
  • apa
  • harvard1
  • ieee
  • modern-language-association-8th-edition
  • vancouver
  • Other style
More styles
Language
  • de-DE
  • en-GB
  • en-US
  • fi-FI
  • nn-NO
  • nn-NB
  • sv-SE
  • Other locale
More languages
Output format
  • html
  • text
  • asciidoc
  • rtf
Applying REST principles on local client-side APIs
KTH, School of Computer Science and Communication (CSC).
2014 (English)Independent thesis Advanced level (degree of Master (Two Years)), 20 credits / 30 HE creditsStudent thesis
Abstract [en]

Abstract

In this thesis, the application of REST principles on local clientside APIs is explored. REST is a popular software architectural style designed with simplicity, scalability and generality in mind. The benefits and drawbacks of using REST over conventional styles of designing local APIs have been investigated, with a specific focus on libspotify. Libspotify is a C API that allows third-party developers to use Spotify’s music streaming service. A local REST API was implemented on top of the libspotify C API. Software metrics were applied to the APIs, showing that the implementation was less decoupled than the equivalent C

API. The metric results and relevant previous studies were used to analyze REST in local APIs. The main benefit was found to be the decoupling, leading to better evolvabilityand maintainability of an API. The main drawback is the additional work needed to model a REST API, and to make it more user friendly. The conclusion is that libspotify can benefit from REST, but that it might require more work than designing a conventional local API.

Abstract [sv]

Applicering av REST-princper på lokala API:er på klientsidan

I det här examensarbetet utforskas användningen av REST principer på lokala API:er. REST är en populär arkitekturstil för att utveckla mjukvara, designad för att vara enkel, skalbar och generell. För- och nackdelar med att använda REST istället för konventionella stilar att utveckla API:er har utforskats, med fokus på libspotify. Libspotify är ett C-API som låter tredjepartsutvecklare använda Spotifys musikströmningstjänst. Ett lokalt REST-API implementerades ovanpå libspotifys C-API. Metoder för att mäta API:ernas egenskaper användes, som visade att det existerande API:t hade ett större beroende mellan mjukvarukomponenter än REST-API:t. Mätresultaten och tidigare relevanta studier användes för att analysera REST i lokala API:er. Den huvudsakliga fördelen visade sig vara det minskade beroendet mellan mjukvarukomponenter, vilket leder till att API:t blir lättare att utveckla och underhålla. Den största nackdelen är det extra arbete som krävs föratt dels modellera ett REST-API, och dels göra det mer användarvänligt. Slutsatsen är att libspotify kan dra nytta utav REST, men att det kan innebära mer arbete än att designa ett konventionellt lokalt API.

Place, publisher, year, edition, pages
2014.
National Category
Computer Science
Identifiers
URN: urn:nbn:se:kth:diva-153671OAI: oai:DiVA.org:kth-153671DiVA: diva2:753212
Examiners
Available from: 2014-11-24 Created: 2014-10-07 Last updated: 2014-11-24Bibliographically approved

Open Access in DiVA

fulltext(239 kB)210 downloads
File information
File name FULLTEXT01.pdfFile size 239 kBChecksum SHA-512
e71662bc8682fc94533ccff15cdd4e910479547b9e52b0a63d0d014944dce2451a3347d2596656b49a2a38ebe17375e99c06acd5e7ed345b07a8d357763c927b
Type fulltextMimetype application/pdf

By organisation
School of Computer Science and Communication (CSC)
Computer Science

Search outside of DiVA

GoogleGoogle Scholar
Total: 210 downloads
The number of downloads is the sum of all downloads of full texts. It may include eg previous versions that are now no longer available

urn-nbn

Altmetric score

urn-nbn
Total: 1439 hits
CiteExportLink to record
Permanent link

Direct link
Cite
Citation style
  • apa
  • harvard1
  • ieee
  • modern-language-association-8th-edition
  • vancouver
  • Other style
More styles
Language
  • de-DE
  • en-GB
  • en-US
  • fi-FI
  • nn-NO
  • nn-NB
  • sv-SE
  • Other locale
More languages
Output format
  • html
  • text
  • asciidoc
  • rtf