0% menganggap dokumen ini bermanfaat (0 suara)
148 tayangan24 halaman

RESTful Webservice

Webservice merupakan metode pertukaran data antar sistem tanpa campur tangan manusia dengan menggunakan protokol HTTP. RESTful webservice adalah arsitektur webservice yang mengakses sumber daya melalui URL menggunakan method HTTP standar. Implementasi RESTful webservice dapat dilakukan dengan framework seperti Django dan Flask pada server serta library seperti urllib pada client.

Diunggah oleh

Yogi Mahatma
Hak Cipta
© © All Rights Reserved
Kami menangani hak cipta konten dengan serius. Jika Anda merasa konten ini milik Anda, ajukan klaim di sini.
Format Tersedia
Unduh sebagai PPT, PDF, TXT atau baca online di Scribd
0% menganggap dokumen ini bermanfaat (0 suara)
148 tayangan24 halaman

RESTful Webservice

Webservice merupakan metode pertukaran data antar sistem tanpa campur tangan manusia dengan menggunakan protokol HTTP. RESTful webservice adalah arsitektur webservice yang mengakses sumber daya melalui URL menggunakan method HTTP standar. Implementasi RESTful webservice dapat dilakukan dengan framework seperti Django dan Flask pada server serta library seperti urllib pada client.

Diunggah oleh

Yogi Mahatma
Hak Cipta
© © All Rights Reserved
Kami menangani hak cipta konten dengan serius. Jika Anda merasa konten ini milik Anda, ajukan klaim di sini.
Format Tersedia
Unduh sebagai PPT, PDF, TXT atau baca online di Scribd
Anda di halaman 1/ 24

Webservice

Materi
Pengenalan Webservice
RESTful Webservice
Implementasi RESTful Webservice

Pengenalan Webservice

Latar Belakang Masalah


Mekanisme umum pertukaran informasi di web
membutuhkan campur tangan manusia untuk
interpretasi informasi
Misal
Buka halaman web

Baca informasi lalu interpretasi

web browser
Webserver

Masalah 1
Bagaimana jika yang berkomunikasi adalah dua entitas
mesin yang berbeda tanpa campur tangan manusia ?
Misal : SI Penggajian memerlukan data pegawai dari SI
Kepegawaian

Webserver
SI Penggajian

Webserver
SI Kepegawaian

Masalah 2
Bagaimana caranya agar aplikasi native (mobile,
desktop) bisa bertukar data dengan webserver yang
berbeda bahasa pemrograman ?
Misal : Aplikasi mobile (Java) mengakses data pengguna dari
web application (PHP)

Mobile Android
Webserver

Webservice
Web service adalah metode komunikasi
machine-to-machine lewat protokol web (http)
Mekanisme request-response sama dengan web page
biasa
Hanya berbeda pada representasi response data
Tidak ada interpretasi manual oleh manusia

Web Page vs Webservice


Web Page

Web Service

Pengguna dan Penerjemah Informasi


Manusia

Mesin
Format dan Struktur Data

Bebas

Terformat dan terstruktur


Format dan struktur data
disepakati dua mesin yang
berkomunikasi

Contoh Kasus

Contoh Kasus
Housingmaps.com is a mashup created of
Craigslist

A centralized network of online communities, featuring free


online classified advertisements with sections devoted to
jobs, housing, personals, for sale, services, community, gigs,
rsums, and discussion forums.
Google Maps
The properties described in Craigslist are placed on a map.

The true power of the applied Web 2.0 approach comes


from the fact that it is "in no way affiliated with
craigslist or Google
It consumes Web 2.0 services provided by Craigslist and
Google

Arsitektur Webservice
Terdapat beberapa jenis arsitektur
webservice

XML-RPC (XML Remote Procedure Call)


WSDL
SOAP
RESTful Webservice

RESTful Webservice

RESTful Webservice
Representational State Transfer (REST)
Resource based webservice

Resource = data yang dipertukarkan


Resource dikenali dengan URI/URL
Resource diakses dengan method standard HTTP
Resource dapat diakses dalam bentuk XML, JSON

REST hanya sebuah architectural style,


BUKAN tool
REST hanya mendefinisikan aturan akses mengakses
resource

Contoh : Mengambil Resource Pegawai


Data seluruh pegawai
Request : GET /api/v1.0/pegawai
Response : {"pegawai": [{"nama": "Paijo",
"alamat": "Malang", "id": 1}, {"nama": "Paino",
"alamat": "Surabaya", "id": 2}]}

Data pegawai dengan ID 1


Request : GET /api/v1.0/pegawai/1
Response : {"pegawai": [{"nama": "Paijo",
"alamat": "Malang", "id": 1}]}

Contoh : Modifikasi Resource Pegawai


Create data pegawai
Request : POST /api/v1.0/pegawai
Response : {"pegawai": [{"nama": "Paijo2",
"alamat": "Kediri"}]}
Update data pegawai dengan ID 1
Request : PUT /api/v1.0/pegawai/1
Response : {"pegawai": [{"nama": "Paijo",
"alamat": "Malang", "id": 1}]}
Hapus data pegawai dengan ID 1
Request : DELETE /api/v1.0/pegawai/1
Response : {"pegawai": [{"nama": "Paijo", "alamat":
"Malang", "id": 1}]}

Conceptual Overview
REST Architectural Constrains (1)

Client-server
Separation of concerns
Clients are separated from servers by a uniform interface.

Networking
Clients are not concerned with data storage, which remains internal
to each server, so that the portability of client code is improved.
Servers are not concerned with the user interface or user state, so
that servers can be simpler and more scalable.

Independent evolution
Servers and clients may also be replaced and developed
independently, as long as the interface is not altered.

Conceptual Overview
REST Architectural Constrains (2)

Stateless communication
Scalability, reliability
No client context being stored on the server between requests. Each request
from any client contains all of the information necessary to service the request.

Resources are conversationally stateless


Any conversational state is held in the client.

Uniform Interface
Simplicity (vs. efficiency)
Large-grained hypermedia data transfer
Example: Create, Retrieve, Update, Delete

Conceptual Overview
REST Architectural Constrains (3)

Caching
Efficiency, scalability
Well-managed caching partially or completely eliminates some client-server
interactions, further improving scalability and performance.

Consistency issues
As on the World Wide Web, clients are able to cache responses. Responses must
therefore, implicitly or explicitly, define themselves as cacheable or not, to
prevent clients reusing stale or inappropriate data in response to further
requests.

Code-on-demand
Extending client functionality
Servers are able to temporarily extend or customize the functionality of a client
by transferring to it logic that it can execute. Examples of this may include
compiled components such as Java applets and client-side scripts such as
JavaScript.

Implementasi RESTful Webservice


REST server
Python : Django REST framework, Django
Tastypie, Flask
PHP : Codeigniter REST, FRAPI, Recess,
Resauce
Java : Jersey, RestEasy

REST Client
PHP : curl
Python : urllib2, urllib, drest
Java : HttpURLConnection+JSON Parser,
Retrofit

Contoh Kasus

Contoh Kasus
Akses data Pegawai dengan RESTful
webservice
Server = Flask
Python Django bisa diganti PHP,
Codeigniter,dll.
Data Pegawai disimpan dalam sebuah
list/array

Client = Python urllib

Client Server
Demo

Tugas
Buatlah sistem manajemen penggajian sederhanya
berbasis RESTful webservice dengan ketentuan :
Data Pegawai meliput nama, alamat disimpan di Server 1
Data Gaji Pegawai disimpan di Server 2
Operasi pada data Pegawai dan Gajinya meliputi : create, read,
update, delete
Client hanya perlu terhubung ke Server 1 untuk melakukan
operasi data
Data Pegawai dan Gajinya disimpan dalam sebuah database
SQLite

Tugas berkelompok 2 orang dengan kelompok yang


pernah ada
Kirimkan source code dan file database SQLite nya ke
Online Course

Terima Kasih

Anda mungkin juga menyukai