Klien kami telah memberi saya API REST ke mana saya harus menelepon PHP. Tetapi kenyataannya dokumentasi yang diberikan dengan API sangat terbatas, jadi saya tidak benar-benar tahu cara menelepon layanan.
Saya sudah mencoba ke Google, tetapi satu-satunya yang muncul adalah Yahoo! tutorial tentang cara memanggil layanan. Tidak menyebutkan header atau informasi mendalam apa pun.
Apakah ada informasi yang layak seputar cara memanggil REST API, atau dokumentasi tentangnya? Karena bahkan pada W3schools, mereka hanya menjelaskan metode SOAP. Apa sajakah pilihan berbeda untuk membuat API sisanya di PHP?
php
web-services
api
rest
Michiel
sumber
sumber
$data
adalah array asosiatif (data [fieldname] = nilai) yang menyimpan data yang dikirim ke metode api.curl_close
fungsi tidak dipanggil, apa yang bisa menyebabkan konsumsi memori tambahan jika fungsi CallAPI dipanggil berulang kali.Jika Anda memiliki url dan php Anda mendukungnya, Anda bisa memanggil file_get_contents:
jika $ response adalah JSON, gunakan json_decode untuk mengubahnya menjadi array php:
jika $ response adalah XML, gunakan kelas simple_xml:
http://sg2.php.net/manual/en/simplexml.examples-basic.php
sumber
file_get_contents
fungsi gagal dengan peringatan dan mengembalikan nol. Jika isi pesan kesalahan, Anda tidak dapat mengambilnya.Gunakan Guzzle . Ini adalah "klien HTTP PHP yang membuatnya mudah untuk bekerja dengan HTTP / 1.1 dan menghilangkan rasa sakit karena mengkonsumsi layanan web". Bekerja dengan Guzzle jauh lebih mudah daripada bekerja dengan CURL.
Berikut ini contoh dari situs Web:
sumber
CURL adalah cara termudah untuk pergi. Ini panggilan sederhana
sumber
Gunakan HTTPFUL
Httpful adalah pustaka PHP yang sederhana, mudah dibaca, dan dapat dibaca yang dimaksudkan untuk membuat berbicara HTTP menjadi waras. Ini memungkinkan pengembang fokus pada interaksi dengan API alih-alih menyaring halaman set_opt curl dan merupakan klien PHP REST yang ideal.
Httpful termasuk ...
Ex.
Kirim permintaan GET. Dapatkan respons JSON yang diuraikan secara otomatis.
Perpustakaan memperhatikan Tipe Konten JSON dalam respons dan secara otomatis mem-parsing respons ke objek PHP asli.
sumber
$condition = $response->weather[0]->main;
kecuali saya hanya melakukan kesalahan pada sisi PHPAnda perlu tahu apakah REST API yang Anda panggil mendukung
GET
atauPOST
, atau kedua metode tersebut. Kode di bawah ini adalah sesuatu yang berfungsi untuk saya, saya memanggil API layanan web saya sendiri, jadi saya sudah tahu apa yang API ambil dan apa yang akan kembali. Ini mendukung keduanyaGET
danPOST
metode, sehingga info yang kurang sensitif masuk keURL (GET)
, dan info seperti nama pengguna dan kata sandi dikirimkan sebagaiPOST
variabel. Juga, semuanya berjalan melaluiHTTPS
koneksi.Di dalam kode API, saya menyandikan larik yang ingin saya kembalikan ke format json, kemudian cukup gunakan perintah PHP
echo $my_json_variable
untuk membuat string json itu tersedia untuk klien.Jadi seperti yang Anda lihat, API saya mengembalikan data json, tetapi Anda perlu tahu (atau melihat data yang dikembalikan untuk mengetahui) apa format respons dari API.
Inilah cara saya terhubung ke API dari sisi klien:
BTW, saya juga mencoba menggunakan
file_get_contents()
metode seperti yang disarankan beberapa pengguna di sini, tapi itu tidak berfungsi dengan baik untuk saya. Saya menemukancurl
metode menjadi lebih cepat dan lebih dapat diandalkan.sumber
Sebenarnya ada banyak klien. Salah satunya adalah Pest - lihat ini. Dan perlu diingat bahwa panggilan REST ini adalah permintaan http sederhana dengan berbagai metode: GET, POST, PUT dan DELETE.
sumber
Anda dapat menggunakan
file_get_contents
untuk mengeluarkanPOST/PUT/DELETE/OPTIONS/HEAD
metode http apa pun , selainGET
metode seperti yang disarankan nama fungsi.Bagaimana cara mengirim data dalam PHP menggunakan file_get_contents?
sumber
Jika Anda menggunakan Symfony, ada bundel klien yang sangat bagus yang bahkan menyertakan semua ~ 100 pengecualian dan melemparkannya alih-alih mengembalikan beberapa pesan + kode kesalahan yang tidak berarti.
Anda harus benar-benar memeriksanya: https://github.com/CircleOfNice/CiRestClientBundle
Saya suka antarmuka:
Bekerja untuk semua metode http.
sumber
seperti @Christoph Winkler sebutkan ini adalah kelas dasar untuk mencapainya:
curl_helper.php
Maka Anda selalu dapat memasukkan file dan menggunakannya misalnya: any.php
sumber
Jika Anda terbuka untuk menggunakan alat pihak ketiga, Anda akan melihatnya di sini: https://github.com/CircleOfNice/DoctrineRestDriver
Ini adalah cara yang sepenuhnya baru untuk bekerja dengan API.
Pertama-tama Anda mendefinisikan entitas yang mendefinisikan struktur data yang masuk dan keluar dan membubuhi keterangan dengan sumber data:
Sekarang cukup mudah untuk berkomunikasi dengan API REST:
sumber
Anda dapat menggunakan POSTMAN, aplikasi yang memudahkan API. Isi kolom permintaan dan kemudian akan menghasilkan kode untuk Anda dalam berbagai bahasa. Cukup klik kode di sisi kanan dan pilih bahasa pilihan Anda.
sumber