Integrasi API
Integrasi API menghubungkan sistem perisian melalui antara muka yang dipersetujui untuk permintaan dan respons. Satu sistem membekalkan permintaan yang dibenarkan; sistem yang satu lagi mengembalikan data atau melakukan operasi mengikut kontraknya. Integrasi yang boleh diharap turut menetapkan pengesahan identiti, pemetaan medan dan pengendalian kegagalan supaya permintaan yang diterima tidak disalah anggap sebagai tugas perniagaan yang telah selesai.
Oleh Ai Flowi · Diterbitkan
Berkaitan: unified API: kontrak bersama merentas API perkhidmatan.
Apakah maksud integrasi API?
API, atau antara muka pengaturcaraan aplikasi, menetapkan cara perisian boleh berinteraksi dengan sistem lain. Bagi API HTTP, kontrak mungkin merangkumi titik akhir, kaedah, pengepala, badan permintaan dan struktur respons. Integrasi menambah logik yang diperlukan untuk menggunakan kontrak itu dalam proses tertentu. URL yang boleh dicapai sahaja tidak menerangkan operasi yang disokong.
Asingkan data sumber daripada keperluan destinasi. Borang penerimaan mungkin membekalkan nama paparan, manakala destinasi menjangkakan pengecam rekod yang tidak boleh diubah. Menyalin medan kerana labelnya kelihatan serupa bukan keputusan pemetaan. Rekodkan makna, jenis, nilai yang dibenarkan dan cara mengendalikan nilai yang tiada bagi setiap medan yang merentas sempadan.
Contoh HTTP umum yang tidak mendatangkan kesan
Pertimbangkan permintaan bacaan sebagai ilustrasi untuk item katalog sintetik. Alamat berikut ialah alamat yang dikhaskan untuk contoh, bukannya titik akhir penyedia yang boleh digunakan. Gambaran ini menerangkan struktur permintaan dan sengaja tidak mengandungi kelayakan akses atau data respons yang didakwa benar.
GET https://example.invalid/api/items/SAMPLE_ITEM
Accept: application/json
Output yang dimaksudkan ialah objek JSON yang mengandungi pengecam item yang diminta serta keterangan yang didokumenkan, atau ralat yang didokumenkan. Integrasi perlu mengesahkan bahawa respons itu merujuk kepada pengecam yang sama sebelum memaparkannya. Respons tanpa keterangan perlu menghasilkan keadaan maklumat tidak tersedia, bukannya pengganti medan yang tiada yang dijana oleh model.
Penyedia sebenar mungkin menggunakan laluan lain, pengepala pengesahan identiti atau jenis media lain. Dokumentasinya menentukan kontrak. Contoh umum ini tidak mengesahkan akses kepada mana-mana perkhidmatan berjenama. Operasi tulis memerlukan keputusan tambahan tentang kebenaran dan pengendalian pendua sebelum dimasukkan ke dalam aliran kerja.
Pengesahan identiti dan pemberian kebenaran
Pengesahan identiti mengenal pasti perisian atau pengguna yang membuat panggilan. Pemberian kebenaran menentukan operasi yang boleh dilakukan oleh identiti itu. Kunci API yang diterima untuk membaca rekod mungkin tidak membenarkan pengemaskiniannya. Reka integrasi dengan akses terhad yang diperlukan untuk tugas tersebut, dan uji akses yang ditolak tanpa menambah kebenaran lebih luas semata-mata untuk menghilangkan ralat.
Gunakan akaun penyedia anda sendiri dan jenis kelayakan akses yang diperlukan oleh API-nya. Jangan masukkan nilai kelayakan akses ke dalam teks aliran kerja yang dikongsi atau log. Panduan sambungan AI Flowi menerangkan mekanisme kelayakan akses sedia ada; mekanisme yang betul tetap bergantung pada komponen. Caj, kuota dan sekatan akaun penyedia kekal berasingan daripada langganan aliran kerja.
Pemetaan skema dan semakan respons
Jika lajur kontrak melangkaui skrin, tatal dalam jadual ini atau fokuskan jadual dan gunakan kekunci anak panah.
| Sempadan | Keputusan untuk didokumenkan | Contoh kegagalan |
|---|---|---|
| Pengecam | Kunci stabil manakah yang mengenal pasti objek yang sama dalam kedua-dua sistem? | Label paparan sepadan dengan lebih daripada satu rekod. |
| Jenis | Medan manakah berbentuk teks, nombor, boolean atau senarai? | Pengecam kehilangan sifar di hadapan selepas ditukar kepada nombor. |
| Ketiadaan | Adakah nilai yang tiada dan nilai null mempunyai makna yang berbeza? | Medan yang tiada ditafsirkan sebagai permintaan untuk mengosongkan nilai. |
| Kejayaan | Respons apakah yang membuktikan operasi yang dimaksudkan telah selesai? | Tugas dalam baris gilir dilaporkan sebagai operasi tulis yang sudah selesai. |
| Versi | Versi skema manakah yang dijangka oleh pemetaan? | Medan respons yang dinamakan semula diteruskan sebagai data kosong. |
Lakukan pengesahan pada kedua-dua hujung: sebelum menghantar permintaan dan sebelum mempercayai responsnya. Respons JSON ialah representasi untuk penghantaran, bukannya bukti bahawa setiap medan memenuhi peraturan perniagaan. Simpan konteks diagnostik yang mencukupi untuk menyelaraskan operasi yang gagal, sambil mengecualikan muatan sensitif daripada teks ralat yang dipaparkan kepada pengguna.
Rujukan pembahagian halaman dan had kadar
Untuk penelusuran koleksi, rujuk API pagination; untuk kuota permintaan dan keputusan pendikitan, rujuk had kadar API.
Cubaan semula, tamat masa dan idempotensi
Tamat masa bermaksud pemanggil berhenti menunggu; ia tidak membuktikan bahawa destinasi tidak melakukan sebarang tindakan. Mengulang operasi tulis yang hasilnya tidak pasti boleh mewujudkan rekod lain. Idempotensi bermaksud penggunaan berulang bagi operasi yang ditetapkan menghasilkan kesan yang dimaksudkan dan selamat apabila diulang. Sesetengah API menyediakan kontrak kunci idempotensi, manakala yang lain memerlukan penyelarasan berdasarkan pengecam stabil. Sahkan tingkah laku sebenar destinasi.
Tentukan pihak yang bertanggungjawab mencuba semula dan pihak yang menyiasat hasil yang tidak pasti. Permintaan bacaan dan penciptaan rekod mempunyai akibat yang berbeza. Apabila hasil operasi tulis tidak jelas, periksa destinasi sebelum memutuskan untuk mengulangnya. Senarai setempat “sudah dilihat” tidak setara dengan jaminan atomik terhadap penghantaran serentak.
Tanggungjawab integrasi berdasarkan katalog
Rujukan API Request, JSON Operations dan Condition masing-masing merangkumi penghantaran HTTP, pemetaan objek dan penghalaan berasaskan kunci.
Pertimbangkan kontrak sintetik kedua: permintaan eksport mengembalikan keadaan diterima dan rujukan tugas sementara destinasi menyediakan fail. Hasil segera yang betul ialah “eksport diterima”, dengan rujukan tugas disimpan untuk penyelarasan. Hasil itu bukan “fail sedia”. Semakan status kemudian mungkin melaporkan dalam baris gilir, sedang diproses, selesai atau gagal; ini ialah keadaan aplikasi sebagai ilustrasi, bukannya nilai pilihan katalog atau skema respons penyedia tertentu.
Tetapkan maksud penyelesaian sebelum menyambungkan cabang. Status selesai mungkin memerlukan rujukan fail yang berkaitan dengan tugas yang sama, manakala status gagal memerlukan sebab kegagalan yang boleh diperiksa. Jika respons menyatakan selesai tetapi tidak mempunyai rujukan fail yang diperlukan, anggap kontrak itu belum diselesaikan. Jangan suruh model bahasa mereka alamat muat turun untuk memenuhi struktur output yang dijangka.
Dua identiti penting di sini. Permintaan perniagaan mengenal pasti eksport yang diminta oleh pengguna; rujukan tugas mengenal pasti pelaksanaan tak segerak di destinasi. Cubaan semula penghantaran awal mungkin mencipta tugas lain melainkan penyedia menetapkan penghantaran yang selamat apabila diulang. Ulangan semakan status perlu terus menjejak tugas sedia ada. Pastikan operasi ini boleh dibezakan apabila menentukan operasi yang boleh dicuba semula selepas tamat masa.
Peranan integrasi ini didokumenkan dalam katalog; belum diuji dalam persekitaran pengeluaran oleh Ai Flowi bagi kontrak ilustrasi ini. Penyedia mesti menetapkan operasi status, keadaan tamat dan tempoh akses; komponen permintaan umum tidak membekalkan mana-mana makna perniagaan tersebut.
Kesilapan lazim dan masa untuk berhenti
- Menganggap komponen katalog sebagai penyambung terbina dalam untuk setiap perkhidmatan. Sahkan titik akhir dan operasi yang anda perlukan.
- Menganggap setiap respons HTTP yang berjaya membuktikan penyelesaian perniagaan. Periksa badan respons yang didokumenkan dan sebarang hasil tak segerak.
- Mencuba semula operasi tulis selepas setiap tamat masa. Selaraskan hasil yang tidak pasti dan patuhi kontrak destinasi tentang keselamatan ulangan.
- Menggunakan model AI untuk membaiki pengecam yang mesti tepat atau medan wajib yang tiada. Tolak atau minta pembetulan.
Eksport fail mungkin memadai untuk pertukaran sekali-sekala tanpa perlu mengekalkan integrasi langsung. Berhenti apabila destinasi tiada antara muka yang dibenarkan, atau apabila kegagalan tidak dapat dikesan dan diselaraskan. Penyedia anda mengenakan bil secara berasingan bagi penggunaan API pihak ketiga.
Pelan: Go dari USD8/bulan dengan bil tahunan (USD10 bulanan), Plus dari USD16 (USD20 bulanan), Pro 100 dari USD80 (USD100 bulanan), Pro 200 dari USD160 (USD200 bulanan) dan Pro 500 dari USD400 (USD500 bulanan), dengan 5,000 hingga 250,000 Flowi Tokens sebulan dan pilihan tambah nilai; 1 token bagi setiap pelaksanaan nod; penggunaan API dan model pihak ketiga tidak termasuk.
Istilah dan rujukan berkaitan
Lihat AI perbualan untuk pemprosesan dialog dan contoh ejen pintar untuk pemilihan tindakan. Katalog komponen dan halaman aliran kerja yang diuji dan didokumenkan membekalkan batas pelaksanaan masing-masing.