Using Retrofit framework in implementation of Android REST client David Ante Macan*, Zlatko Stapić, Milan Pavlović* University of Zagreb Faculty of Organization and Informatics Pavlinska 2, 42000 Varaždin, Croatia http://www.foi.unizg.hr/ CASE27 – Developers conference - 02.06.2015. – Zagreb, Croatia * Students at University of Zagreb, FOI Varazdin
16
Embed
Using Retrofit framework in implementation of Android REST client (Presentation)
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Using Retrofit framework in implementation of Android REST client
David Ante Macan*, Zlatko Stapić, Milan Pavlović*
University of ZagrebFaculty of Organization and InformaticsPavlinska 2, 42000 Varaždin, Croatiahttp://www.foi.unizg.hr/
CASE27 – Developers conference - 02.06.2015. – Zagreb, Croatia
Macan, Stapić, Pavlović: Using Retrofit framework in implementation of Android REST client - CASE27, 2nd June 2015
2
Introduction
• Today’s mobile applications are Internet dependent• 2017 -> 90% [1], [3]
• Web services are used for supporting mobile application functionalities Internet dependent monetization models App usage statistics, data synchronization, social
components, score tables…
• Backend servers for push notifications
• Web service – self contained and self describing application component that can be used by other applications and can be communicated by using open protocols [6]
Macan, Stapić, Pavlović: Using Retrofit framework in implementation of Android REST client - CASE27, 2nd June 2015
3
Introduction
• After SOA became widely used for mobile and other applications, the dominant way of exchanging the data with web services was by using SOAP [7]
• XML used for creating requests and responses was too complex and requests had to be build manually -> problematic due to protocols intolerance on any errors
• REST (Representational State Transfer) provides lightweight alternative and relies on simple URL approach
• REST can output the data in any format (for example in CSV, JSON or RSS).
Macan, Stapić, Pavlović: Using Retrofit framework in implementation of Android REST client - CASE27, 2nd June 2015
4
REST Architecture
Architectural style for distributed hypermedia systems, as Roy Fielding originally described it in his doctoral dissertation in 2000 [8]
Contains 6 main characteristics:1. Uniform interface
Resource based Manipulation of resources through representations Usage of self-descriptive messages Hypermedia as the engine of application state
2. Statelessness3. Caching4. Client-server separation5. Layering6. Code on demand
Macan, Stapić, Pavlović: Using Retrofit framework in implementation of Android REST client - CASE27, 2nd June 2015
5
REST Architecture
HTTP request semantics
Macan, Stapić, Pavlović: Using Retrofit framework in implementation of Android REST client - CASE27, 2nd June 2015
6
Request Method Description
GETUsed for retrieving (or read) a representation of a resource. If everything works, HTTP GET response contains a representation in XML or JSON with response code of 200 (OK).
POST
Most often used for creation of new resources. It is actually used to create subordinate or child resource of some other (parent) resource. When server receives POST request, it creates new resource and assigns it a new ID.
PUTUsed for update operations. Request body should contain newly-updated representation of the original resource which is identified by a known resource URI.
DELETE Used to delete URI-identified resource.
Android client implementation
• Example system Address Manager - enables users to get geographical location
(latitude and longitude) of any user defined address
Macan, Stapić, Pavlović: Using Retrofit framework in implementation of Android REST client - CASE27, 2nd June 2015
7
Android client implementation
• Web service specification http://tinyurl.com/case27-locations x-www-form-urlencoded request
Macan, Stapić, Pavlović: Using Retrofit framework in implementation of Android REST client - CASE27, 2nd June 2015
8
URL Method
Params
Response example
base GET - [{"id":1,"location":"Ivanec","lat": "46.2228422","lon":"16.1246793"}, …]
base POST location {"id":1,"location":"Ivanec","lat": "46.2228422","lon":"16.1246793"}
base/id PUT location {"id":1,"location":"Ivanec 2", "lat": "47.2228422","lon":"15.1246793"}
[1] D. Bosomworth, “Mobile marketing statistics 2015” Smart Insights, 2015. Available at: http://www.smartinsights.com/mobile-marketing/mobile-marketing-analytics/mobile-marketingstatistics/ [Accessed: May-
2015][2] ComScore Inc., “The U.S. Mobile App Report” 2014. Available at: http://www.comscore.com/Insights/Presentations-and-Whitepapers/2014/The-US-Mobile-App-Report[3] Statista, “Statistics and facts on Mobile Internet Usage,” Statista.com, 2015. [Online]. Available at: http://www.statista.com/topics/779/mobile-internet/ [Accessed: May-2015].[4] Android Developers, “Google Cloud Messaging for Android | Android Developers” Google Services, 2015. [Online]. Available at: https://developer.android.com/google/gcm/index.html [Accessed: May-2015].[5] Apple inc., “Local and Push Notifications for Developers - Apple Developer” Developer Apple.com, 2015. [Online]. Available at: https://developer.apple.com/notifications/ [Accessed: May-2015].[6] W3Schools.com, “Introduction to Web Services” Introduction to Web Services, 2015. [Online]. Availableat: http://www.w3schools.com/webservices/ws_intro.asp [Accessed: May-2015].[7] W3Schools.com, “SOAP Introduction”, 2015. [Online]. Available at: http://www.w3schools.com/webservices/ws_soap_intro.asp [Accessed: May-2015].[8] R. T. Fielding, “Architectural Styles and the Design of Network-based Software Architectures” UNIVERSITY OF CALIFORNIA, Irvine, 2000.[9] A. Nene, “Web Services Architecture – When to Use SOAP vs REST” Javalobby, 2014. [Online]. Availableat: http://java.dzone.com/articles/web-services-architecture [Accessed: May-2015].[10] J. Mueller, “Understanding SOAP and REST Basics” Software Quality Matters Blog, 2013. [Online]. Available at: http://blog.smartbear.com/apis/understanding-soap-and-rest-basics/ [Accessed: May-2015].[11] F. Todd, “RESTful Service Best Practices, Recommendations for Creating Web Services” RestAPITutorial.com, 2013.[12] CodePath.com, “Consuming APIs with Retrofit” CodePath Android Cliffnotes, 2015. [Online]. Availableat: https://guides.codepath.com/android/Consuming-APIs-with-Retrofit#setup [Accessed: May-2015]. [13] StudyTrials, “Java Google Json (Gson) Introduction” StudyTrials.com. [Online]. Available at: http://www.studytrails.com/java/json/java-google-json-introduction.jsp [Accessed: May-2015].[14] “Google Gson” Google Gson Home, 2011. [Online]. Available at: https://sites.google.com/site/gson/Home [Accessed: May-2015]
Macan, Stapić, Pavlović: Using Retrofit framework in implementation of Android REST client - CASE27, 2nd June 2015