Cara Membuat API sederhana dengan PHP dan MySQL
Pendahuluan
Artikel ini akan mencakup bagaimana Anda dapat membuat API yang sangat sederhana untuk salah satu proyek Anda. Kita akan menggunakan PHP dan MySQL, dan akan menampilkan data dengan API kami dalam dua format: XML atau JSON.
API berdiri untuk Application Programming Interface. Secara sederhana, adalah cara untuk semua orang (jika Anda memilih demikian) untuk mengakses data website Anda. Sebagai contoh, mari kita mengatakan bahwa Anda memiliki situs web di mana pengguna mengirimkan link yang mereka sukai. Ada banyak konten meta yang berhubungan dengan pengajuan awal, dan Anda ingin semua ini menjadi lebih mudah diakses. Ini adalah contoh yang bagus dari tempat di mana API dapat melakukan keajaiban. Ambil Twitter sebagai contoh, keberhasilan mereka dapat disebabkan sebagian besar keberhasilan API nya, memberikan pengembang untuk membuat aplikasi mereka sendiri.
A Info Sedikit, Pertama!
Kami akan melakukan hal ini dengan menyediakan data ini dalam API kami:
- ID
- Nama
- Poster resep
- Info Cepat (# menit persiapan, # dari menit total waktu)
- Link ke Resep di Website kami
Mari kita mulai!
Saya sarankan Anda menggunakan struktur URL berikut (atau yang serupa):
http://api.example.com/recipes/
Setelah Anda memiliki struktur ini, membuat file baru di * recipes
* folder bernama * get.php *. Ini adalah file utama yang akan diminta oleh pengembang. Tambahkan baris berikut ke berkas ini:
<?php
if
(isset(
$_GET
[
'format'
]) &amp;amp;amp;&amp;amp;amp;
intval
(
$_GET
[
'num'
])) {
$format
=
strtolower
(
$_GET
[
'format'
]);
$num
=
intval
(
$_GET
[
'num'
]);
$con
= mysql_connect(
'localhost'
,
'root'
,
''
)
or
die
(
'MySQL Error.'
);
mysql_select_db(
'api'
,
$con
)
or
die
(
'MySQL Error.'
);
$result
= mysql_query(
'SELECT * FROM recipes ORDER BY `recipe_id` DESC LIMIT '
.
$num
,
$con
)
or
die
(
'MySQL Error.'
);
if
(
$format
==
'json'
) {
$recipes
=
array
();
while
(
$recipe
= mysql_fetch_array(
$result
, MYSQL_ASSOC)) {
$recipes
[] =
array
(
'post'
=>
$recipe
);
}
$output
= json_encode(
array
(
'posts'
=>
$recipes
));
}
elseif
(
$format
==
'xml'
) {
header(
'Content-type: text/xml'
);
$output
 =
"<?xml version=\"1.0\"?>\n"
;
$output
.=
"<recipes>\n"
;
for
(
$i
= 0 ;
$i
< mysql_num_rows(
$result
) ;
$i
++){
$row
= mysql_fetch_assoc(
$result
);
$output
.=
"<recipe> \n"
;
$output
.=
"<recipe_id>"
.
$row
[
'recipe_id'
] .
"</recipe_id> \n"
;
$output
.=
"<recipe_name>"
.
$row
[
'recipe_name'
] .
"</recipe_name> \n"
;
$output
.=
"<recipe_poster>"
.
$row
[
'recipe_poster'
] .
"</recipe_poster> \n"
;
$output
.=
"<recipe_quick_info>"
.
$row
[
'recipe_quick_info'
] .
"</recipe_quick_info> \n"
;
$output
.=
"<recipe_link>"
.
$row
[
'recipe_link'
] .
"</recipe_link> \n"
;
$output
.=
"</recipe> \n"
;
}
$output
.=
"</recipes>"
;
}
else
{
die
(
'Improper response format.'
);
}
echo
$output
;
}
?>
Ini adalah script versi lengkap, hanya untuk mendapatkannya di luar sana, sekarang mari kita menjelaskannya sedikit:
- Pertama, kita perlu mendapatkan beberapa data dari pengguna: Format apa yang Anda inginkan? Berapa banyak tanggapan yang Anda inginkan?
- Ini didefinisikan dalam format variabel GET dan NUM. Untuk memulai script kami, kami memeriksa apakah nilai-nilai ini bahkan disediakan; jika mereka tidak ada, script tidak akan melakukan apa-apa. Jika mereka berdua disediakan, kita melanjutkan dengan menghubungkan ke database, menjalankan query yang relatif sederhana untuk mendapatkan semua baris, mengambilnya dalam urutan dengan id, dan membatasi respon terhadap berapa banyak yang diminta.
- Mayoritas script kami diambil oleh proses output. Setelah data dipilih ke dalam variabel, kita perlu mendapatkannya untuk pengguna. Pertama, kita memeriksa apakah pengguna ingin versi JSON atau XML, kami melayani sampai output yang tepat. Mari kita pergi sedikit lebih mendalam pada masing-masing gaya keluarannya …
Yang satu ini, untungnya, sangat sederhana. Semua yang kita lakukan adalah menempatkan data ke dalam array, kemudian menggunakan json_encode() fungsi PHP untuk mengkodekan JSON. Inilah yang saya punya dengan data keluaran JSON: ke dalam array, kemudian menggunakan fungsi handy _json_encode_ function berguna PHP untuk mengkodekan JSON.
{
"posts"
:[{
"post"
:{
"recipe_id"
:
"20"
,
"recipe_name"
:
"Grilled Flounder"
,
"recipe_poster"
:
"Billy Bob"
,
"recipe_quick_info"
:
"20 minutes prep, 40 minutes total time"
,
"recipe_link"
:
"http:\/\/www.example.com\/"
}},{
"post"
:{
"recipe_id"
:
"19"
,
"recipe_name"
:
"Grilled Flounder"
,
"recipe_poster"
:
"Billy Bob"
,
"recipe_quick_info"
:
"20 minutes prep, 40 minutes total time"
,
"recipe_link"
:
"http:\/\/www.example.com\/"
}},{
"post"
:{
"recipe_id"
:
"18"
,
"recipe_name"
:
"Grilled Flounder"
,
"recipe_poster"
:
"Billy Bob"
,
"recipe_quick_info"
:
"20 minutes prep, 40 minutes total time"
,
"recipe_link"
:
"http:\/\/www.example.com\/"
}},{
"post"
:{
"recipe_id"
:
"17"
,
"recipe_name"
:
"Grilled Flounder"
,
"recipe_poster"
:
"Billy Bob"
,
"recipe_quick_info"
:
"20 minutes prep, 40 minutes total time"
,
"recipe_link"
:
"http:\/\/www.example.com\/"
}},{
"post"
:{
"recipe_id"
:
"16"
,
"recipe_name"
:
"Grilled Flounder"
,
"recipe_poster"
:
"Billy Bob"
,
"recipe_quick_info"
:
"20 minutes prep, 40 minutes total time"
,
"recipe_link"
:
"http:\/\/www.example.com\/"
}}]}
XML
XML ini sedikit lebih rumit, memerlukan penggunaan sangat kuat (and scary) for() function. Di sini, kita pada dasarnya mengatakan : Selama variabel $i kurang dari jumlah baris maka, lanjut menambahkan ini ke variabel $output kami. Setelah Anda selesai melakukannya, tambahkan satu ke $i variabel. Berikut output saya dapatkan dari ini:
<?
xml
version
=
"1.0"
?>
<
recipes
>
<
recipe
>
<
recipe_id
>20</
recipe_id
>
<
recipe_name
>Grilled Flounder</
recipe_name
>
<
recipe_poster
>Billy Bob</
recipe_poster
>
<
recipe_quick_info
>20 minutes prep, 40 minutes total time</
recipe_quick_info
>
</
recipe
>
<
recipe
>
<
recipe_id
>19</
recipe_id
>
<
recipe_name
>Grilled Flounder</
recipe_name
>
<
recipe_poster
>Billy Bob</
recipe_poster
>
<
recipe_quick_info
>20 minutes prep, 40 minutes total time</
recipe_quick_info
>
</
recipe
>
<
recipe
>
<
recipe_id
>18</
recipe_id
>
<
recipe_name
>Grilled Flounder</
recipe_name
>
<
recipe_poster
>Billy Bob</
recipe_poster
>
<
recipe_quick_info
>20 minutes prep, 40 minutes total time</
recipe_quick_info
>
</
recipe
>
<
recipe
>
<
recipe_id
>17</
recipe_id
>
<
recipe_name
>Grilled Flounder</
recipe_name
>
<
recipe_poster
>Billy Bob</
recipe_poster
>
<
recipe_quick_info
>20 minutes prep, 40 minutes total time</
recipe_quick_info
>
</
recipe
>
<
recipe
>
<
recipe_id
>16</
recipe_id
>
<
recipe_name
>Grilled Flounder</
recipe_name
>
<
recipe_poster
>Billy Bob</
recipe_poster
>
<
recipe_quick_info
>20 minutes prep, 40 minutes total time</
recipe_quick_info
>
</
recipe
>
</
recipes
>
Beberapa catatan
Ada beberapa hal catatan dari artikel ini. Setelah Anda memiliki dasar-dasar ini , Anda dapat menambahkan sendiri. Suatu hal utama yang saya berikan adalah perlunya sebuah Key API. Jika Anda ingin mengelola data anda, Anda harus menetapkan kunci alfanumerik minimal 32 karakter, ini akan membiarkan Anda tahu siapa yang mengakses data Anda dan Anda juga dapat menghentikan akses orang dari situs Anda. Bagian penting lainnya ditinggalkan adalah kenyataan bahwa Anda perlu mengelola API ini! Seseorang bisa masuk ke sini, ulangi script ini berulang-ulang dan membawa website Anda ke bawah. Ada banyak alat bantu gratis di luar sana untuk membatasi penggunaan API Anda, dan salah satu yang saya sangat merekomendasikan adalah 3scale. Twitter membatasi API mereka untuk 1000 permintaan per hari, sehingga Anda bisa mendapatkan ide dari apa yang Anda inginkan.
kesimpulan
Sederhana, bukan? Menggunakan API adalah cara yang mengagumkan untuk memperluas basis pengguna Anda serta konten Anda di seluruh web. Saya harap artikel ini telah membantu baik Anda yang belajar sesuatu yang baru atau membantu untuk menempatkan project yang sedang di buat.
Posting Komentar untuk "Cara Membuat API sederhana dengan PHP dan MySQL"