<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:blogger='http://schemas.google.com/blogger/2008' xmlns:georss='http://www.georss.org/georss' xmlns:gd="http://schemas.google.com/g/2005" xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-5284874418824954884</id><updated>2024-12-18T19:15:51.048-08:00</updated><category term="PHP"/><title type='text'>Sekedar Mencoba Berbagi Manfaat Pengetahuan</title><subtitle type='html'></subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://amrishodiq.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5284874418824954884/posts/default'/><link rel='alternate' type='text/html' href='http://amrishodiq.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>Amri Shodiq</name><uri>http://www.blogger.com/profile/06377903814932369079</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>1</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>25</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-5284874418824954884.post-361610263374940111</id><published>2014-06-08T09:45:00.001-07:00</published><updated>2014-06-08T09:59:20.324-07:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="PHP"/><title type='text'>Bagaimana membuat RESTful API dengan PHP secara mudah?</title><content type='html'>Meskipun dunia sudah mendefinisikan RESTful dalam susunan katanya sendiri, seperti juga didefinisikan di &lt;a href=&quot;http://en.wikipedia.org/wiki/Representational_state_transfer&quot; target=&quot;_blank&quot;&gt;Wikipedia&lt;/a&gt;, tapi saya lebih senang menggambarkannya dalam pilihan kata sendiri.&lt;br /&gt;
&lt;br /&gt;
Yang akan saya share di sini adalah RESTful yang begini:&lt;br /&gt;
&lt;br /&gt;
&lt;ol&gt;
&lt;li&gt;Web API&lt;/li&gt;
&lt;li&gt;Memiliki base URI, misalnya http://amri.shodiq.me/api/&lt;/li&gt;
&lt;li&gt;Menggunakan format dan MIME type tertentu, misalnya JSON atau XML&lt;/li&gt;
&lt;li&gt;Menggunakan HTTP method yang standar, yaitu: GET, POST, PUT dan DELETE&lt;/li&gt;
&lt;li&gt;Bisa dikelompokkan menjadi 2 jenis, yaitu koleksi dan elemen&lt;/li&gt;
&lt;/ol&gt;
&lt;div&gt;
Itu saja batasannya. Saya tidak akan menambah batasan lain sementara ini.&lt;br /&gt;
&lt;br /&gt;
&lt;blockquote class=&quot;tr_bq&quot;&gt;
Ya, saya tahu di luar sana banyak yang sudah membuat REST dengan &lt;a href=&quot;https://github.com/philsturgeon/codeigniter-restserver&quot; target=&quot;_blank&quot;&gt;CodeIgniter&lt;/a&gt;, &lt;a href=&quot;http://laravel.com/docs/controllers&quot; target=&quot;_blank&quot;&gt;Laravel&lt;/a&gt; atau &lt;a href=&quot;http://fuelphp.com/docs/general/controllers/rest.html&quot; target=&quot;_blank&quot;&gt;FuelPHP&lt;/a&gt;. Tapi, yang saya ingin share ini cara from scratch-nya. Dan saya tidak akan bicara PHP sebagai bahasa pemrograman object oriented karena itu akan mengacaukan konsep yang ingin saya sampaikan. Ini murni membangun RESTful API dengan PHP, untuk level mahasiswa. Mahasiswa yang rajin belajar.&lt;/blockquote&gt;
&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
Nah mari kita bicara detilnya dengan contoh.&lt;/div&gt;
&lt;div&gt;
Misalnya saya ingin membuat API untuk aplikasi Android saya. Sebuah aplikasi blog sangat sederhana. Saya membuat sebuah database mysql dengan nama &lt;i&gt;blog&lt;/i&gt;. Di dalam database blog, saya membuat sebuah table dengan nama &lt;i&gt;posts&lt;/i&gt;, untuk menyimpan &lt;i&gt;blog post&lt;/i&gt; saya. Kurang lebih strukturnya seperti berikut:&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhnROkQoKKr6JfvZccQM5JxJnMcFy69mZPgh9dcARm4ZML8guyU2vuXD1tWoMlfWdbqgM90-USur_EOjs_8hv43RlO-Od7ehkOEOBWIKvFaP48cFhDgWCV9yG5mkHfUgPCgypCY62NG_ILH/s1600/Screen+Shot+2014-06-08+at+11.39.25+PM.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhnROkQoKKr6JfvZccQM5JxJnMcFy69mZPgh9dcARm4ZML8guyU2vuXD1tWoMlfWdbqgM90-USur_EOjs_8hv43RlO-Od7ehkOEOBWIKvFaP48cFhDgWCV9yG5mkHfUgPCgypCY62NG_ILH/s1600/Screen+Shot+2014-06-08+at+11.39.25+PM.png&quot; height=&quot;78&quot; width=&quot;320&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
Pada poin nomor 5, saya menyebutkan ada koleksi dan ada elemen. Perbedaan antara keduanya lebih mudah digambarkan seperti berikut ini:&lt;/div&gt;
&lt;div&gt;
&lt;ol&gt;
&lt;li&gt;Koleksi&lt;br /&gt;Struktur:&amp;nbsp;http://amri.shodiq.me/api/blog/&lt;jenis-data&gt;&lt;br /&gt;Contoh: http://amri.shodiq.me/api/blog/posts&lt;br /&gt;Dalam URI semacam ini, maka sewajarnya jika API ini memberikan data berupa beberapa data post terahir blog saya.&lt;/jenis-data&gt;&lt;/li&gt;
&lt;li&gt;Elemen&lt;br /&gt;Struktur:&amp;nbsp;http://amri.shodiq.me/api/blog/&lt;jenis-data&gt;/&lt;id-data&gt;&lt;br /&gt;Contoh: http://amri.shodiq.me/api/blog/posts/10&lt;br /&gt;Dalam URI semacam ini, maka API akan memberikan data detil blog post saya dengan ID 10.&lt;/id-data&gt;&lt;/jenis-data&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;div&gt;
Nah, di atas saya sudah merencakan 2 URI yang akan saya buat menjadi API. Satu adalah API untuk koleksi posts dan satu lagi untuk satu elemen post. Mudah-mudahan Anda bisa menangkap ide nya.&lt;/div&gt;
&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
&lt;blockquote class=&quot;tr_bq&quot;&gt;
Dalam RESTful, HTTP method yang digunakan pun sudah mencerminkan apa yang ingin Anda lakukan.&amp;nbsp;&lt;/blockquote&gt;
&lt;br /&gt;
Contoh kasus nya, dengan menggunakan URI http://amri.shodiq.me/api/blog/posts. Ini artinya kita bekerja pada level koleksi.&amp;nbsp;&lt;/div&gt;
&lt;div&gt;
&lt;ol&gt;
&lt;li&gt;Jika saya menggunakan HTTP method GET, maka server akan membaca database, lalu mengambil beberapa data terakhir dari table posts, kemudian memberikannya sebagai response dalam format yang diminta, misalnya JSON.&lt;/li&gt;
&lt;li&gt;Jika saya menggunakan HTTP method POST, maka server akan berharap bahwa kita akan memberikan beberapa parameter yang akan disimpan ke dalam table posts. Dalam hal ini parameter yang ditunggu oleh server misalnya title dan body. Jika dua parameter ini ditemukan, maka server akan membuat data baru ke dalam table posts, mengambil ID post tersebut, dan merekonstruksikannya menjadi sebuah URI, misalnya&amp;nbsp;http://amri.shodiq.me/api/blog/posts/11. URI ini kemudian akan diberikan sebagai response.&lt;/li&gt;
&lt;li&gt;Jika saya menggunakan HTTP method PUT, maka server akan menganggap ini sebagai perintah untuk mengganti/mengupdate seluruh isi table posts dengan konten yang baru, sesuai parameter PUT yang dikirim.&lt;/li&gt;
&lt;li&gt;Jika saya menggunakan HTTP metho DELETE, maka server akan menganggap ini sebagai perintah untuk mengosongkan table posts.&lt;/li&gt;
&lt;/ol&gt;
&lt;div&gt;
Contoh di atas adalah kondisi yang diharapkan ketika kita bekerja pada lebel koleksi. Berbeda lagi jika kita ingin bekerja pada level elemen. Saya tidak akan menjelaskan lebih jauh tentang bagaimana untuk server me-response GET, POST, PUT dan DELETE pada titik ini, karena nantinya akan saya detilkan di bawah.&lt;br /&gt;
&lt;br /&gt;
Sampai titik ini rencananya sudah semakin matang. Saya sudah akan memiliki 4 fungsi untuk 1 URI koleksi. Berikutnya kita akan bicara langkah demi langkah mengimplementasikan API-nya. Sampai tahap ini saya berharap Anda sudah cukup mengerti bagaimana menginstall PHP dan MySQL, karena saya tidak akan mengulas tentang instalasi. Langsung coding.&lt;/div&gt;
&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
</content><link rel='replies' type='application/atom+xml' href='http://amrishodiq.blogspot.com/feeds/361610263374940111/comments/default' title='Posting Komentar'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/5284874418824954884/361610263374940111' title='7 Komentar'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5284874418824954884/posts/default/361610263374940111'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5284874418824954884/posts/default/361610263374940111'/><link rel='alternate' type='text/html' href='http://amrishodiq.blogspot.com/2014/06/bagaimana-membuat-restful-api-dengan.html' title='Bagaimana membuat RESTful API dengan PHP secara mudah?'/><author><name>Amri Shodiq</name><uri>http://www.blogger.com/profile/06377903814932369079</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhnROkQoKKr6JfvZccQM5JxJnMcFy69mZPgh9dcARm4ZML8guyU2vuXD1tWoMlfWdbqgM90-USur_EOjs_8hv43RlO-Od7ehkOEOBWIKvFaP48cFhDgWCV9yG5mkHfUgPCgypCY62NG_ILH/s72-c/Screen+Shot+2014-06-08+at+11.39.25+PM.png" height="72" width="72"/><thr:total>7</thr:total><georss:featurename>Depok, West Java, Indonesia</georss:featurename><georss:point>-6.3888772 106.83006869999997</georss:point><georss:box>-6.6413576999999995 106.50734519999997 -6.1363967 107.15279219999996</georss:box></entry></feed>