Pertanyaan Saran tombol API yang tenang [tertutup]


Saya mencari saran tentang desain API RESTful. Saya telah membaca banyak tentang skema API REST, cara otentikasi / otorisasi, dll. Yang tidak dapat saya putuskan adalah jika saya benar-benar perlu menggunakan kunci API. Dari apa yang saya pahami menggunakan kunci API berguna jika Anda ingin memantau penggunaan, membatasi permintaan setiap aplikasi dan untuk data statistik.

Yang ingin saya hindari adalah harus membuat antarmuka web tambahan untuk menambahkan / mengelola / menghapus aplikasi dan menambahkan / menghapus administrator aplikasi. Mungkin ada cara yang lebih sederhana untuk melakukan distribusi kunci API. Atau apakah saya benar-benar membutuhkannya? Maksud saya, memantau dan membatasi penggunaan itu keren dan terdengar berguna tetapi apakah itu pantas untuk hal-hal lain yang perlu saya buat untuk distribusi kunci.

Untuk lebih spesifik situs web saya adalah sesuatu seperti slideshare dan scribd. Saya ingin memberikan akses API ke fungsinya seperti menambahkan dan mengelola dokumen dan mendapatkan informasi tentang pengguna. Jadi misalnya untuk mengunggah file yang Anda butuhkan untuk mengotentikasi dan menggunakan akun tertentu untuk melakukannya. Dalam hal ini adalah kunci API persyaratan atau saya bisa tetap dengan mengautentikasi pengguna?

Jadi apa yang menurut Anda adalah cara terbaik bagi saya untuk menangani kunci API? Atau haruskah saya menggunakannya sama sekali? Apakah ada cara yang lebih pintar untuk mendistribusikan (membuat, menghapus) kunci?

Terima kasih sebelumnya :)


5
2018-05-14 18:45


asal


Jawaban:


Anda juga tahu betul http://www.mashery.com/ dan programmableweb?

mungkin ada beberapa sumber daya yang bermanfaat http://www.mashery.com/solution/collegeboard

dan http://www.3scale.net/

saya akan menggunakan kunci api untuk statistik dan pembatasan tetapi juga melayani beberapa layanan tanpa kunci api seperti yang dilakukan google

Anda dapat membuat API dengan mudah dengan solusi seperti
Restler http://luracast.com/products/restler/
Frapi http://getfrapi.com/
The Datatank http://thedatatank.com/
Layanan (hanya untuk Drupal) http://drupal.org/project/services

ada tambahan lagi: http://blog.programmableweb.com/2011/09/23/short-list-of-restful-api-frameworks-for-php/


4
2018-05-14 20:55



Saya menjawab dalam posting di atas juga - tetapi kehabisan ruang. Sebagai disclaimer saya bekerja untuk 3 skala (http://www.3scale.net) sehingga Anda mungkin ingin menguraikan respons saya berdasarkan itu :).

Jawaban atas pertanyaan Anda benar-benar tergantung pada sumber daya apa yang diekspos oleh API Anda dan tujuan Anda untuk melacak / membatasi. Kedengarannya seperti sebagian besar fungsi terkait dengan akun pengguna, tetapi bisa diterapkan oleh pihak ketiga.

Dalam hal ini pola yang paling berguna mungkin adalah memiliki pengenal (publik atau rahasia) untuk setiap aplikasi yang memanggil API + juga kredensial pengguna. Pengenal aplikasi dapat berupa APIKey atau bahkan hanya nama (mis. "Tweetdeck"). Jika Anda berakhir dengan banyak aplikasi pihak ketiga maka mungkin berguna untuk melacak pengidentifikasi ini (yang menyiratkan minimal cara untuk mengeluarkannya) dan tahu siapa yang membangun setiap aplikasi + memiliki kemampuan untuk mematikannya (jika hanya untuk menutup menurunkan mereka yang menyalahgunakan basis pengguna Anda). Anda mungkin juga ingin menilai batas jumlah lalu lintas yang dapat dihasilkan oleh setiap pengguna dan aplikasi di API, jadi sangat berguna untuk memiliki pengenal.

Selain itu, jika pengguna yang mengautentikasi Anda, tetapi mengizinkan pihak ketiga untuk menulis aplikasi yang digunakan pengguna Anda, pasti pertimbangkan oAuth (http://www.oauth.net) untuk menghindari kode jahat / situs yang menangkap kata sandi pengguna Anda.

Anda menyebutkan di atas bahwa Anda tidak tertarik pada layanan eksternal - tidak masalah, 3 skala bekerja dengan benar-benar melakukan semua autentikasi API lokal ke sistem Anda (misalnya dengan salah satu plugin kode: https://support.3scale.net/libraries atau dalam proxy seperti Varnish: https://github.com/3scale/libvmod-3scale/) dan kemudian melakukan pelacakan di cloud. Jelas itu tidak cocok semua kasus penggunaan, tetapi dapat memberi Anda banyak alat yang berguna di luar kotak.


2
2018-05-16 15:31