Api-blueprint: Mendukung kelebihan URI untuk JSON-RPC

Dibuat pada 27 Apr 2014  ·  11Komentar  ·  Sumber: apiaryio/api-blueprint

JSON-RPC dan API serupa RPC lainnya sering kali hanya memiliki satu URI dengan metode yang ditentukan di dalam isi. Akan menyenangkan untuk dapat menentukan beberapa tindakan pada sumber daya ini sehingga editor tidak akan memberikan peringatan dan konsol API akan mengembalikan hasil kelebihan beban yang sesuai.

Question

Semua 11 komentar

Pindah ke apiary.io.

@rodriguise Di mana saya dapat menemukan informasi tentang masalah ini? Saya memiliki pemikiran yang sama, itu akan menjadi fitur yang bagus untuk mendukung API seperti RPC.

@rodriguise Saya juga sangat tertarik dengan fungsi ini, dapatkah Anda mengatakan di mana saya bisa belajar tentang masalah ini?

@adammbalogh @SvyatoslavVasiliev Bisakah kalian menjelaskan kasus penggunaan Anda sedikit lebih banyak?

@pksunkara yakin.
Saya memiliki API yang dirancang sesuai dengan Spesifikasi JSON-RPC 2.0 , misalnya:

POSTING http://somehost.com/rpc_api

{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "entity.get",
  "params": {
    "filter": {
      "filters": [
        {
          "field": "name",
          "operator": "eq",
          "value": "Bob"
        },
        {
          "field": "age",
          "operator": "eq",
          "value": 25
        }
      ],
      "condition": "and"
    }
  }
}

API tersebut hanya memiliki satu URL untuk grup metode, di mana nama metode terdapat dalam isi, dalam parameter "metode".
Realisasi Cetak Biru saat ini tidak memungkinkan untuk mendeskripsikan API semacam itu, karena struktur bahasa yang berpusat pada jalur.

Hai @pksunkara , apakah Anda punya berita tentang ini?
Saya telah mencoba menggunakan alat rendering lain (aglio misalnya) sebagai gantinya tempat pemeliharaan lebah, dan mereka mewakili dokumentasi dengan benar, berbeda dengan tempat pemeliharaan lebah. Tetapi alat tersebut tidak mendukung rendering beberapa fitur seperti Atribut sebagai bagian terpisah.
Akan sangat baik jika Anda membantu menyelesaikan masalah saya.

Hai @SvyatoslavVasiliev jadi jika saya membaca ini dengan benar, dukungan untuk JSON RPC berada di bawah https://github.com/apiaryio/api-blueprint/issues/289 meskipun, secara teknis protokolnya masih HTTP.

Memisahkan sumber daya dan definisi tindakan dari URI dan metode HTTP akan membantu kasus ini juga.

Apakah ini masuk akal? Silakan lihat #289 untuk detail tambahan

Hai @zdne ,
Saya sudah mencoba memahami #289, tetapi saya tidak dapat memahaminya sepenuhnya.
API saya menggunakan HTTP dengan badan JSON sebagai transport, tetapi hanya memiliki satu URL dan hanya menggunakan HTTP POST. Semua informasi tentang sumber daya dan metode yang terkandung dalam param "metode" ke dalam tubuh.
Misalnya, dapatkan entitas:
{ "jsonrpc": "2.0", "id": 1, "method": "entity.get", "params": { "filter": { "filters": [ { "field": "name", "operator": "eq", "value": "Bob" }, { "field": "age", "operator": "eq", "value": 25 } ], "condition": "and" } } }

hapus entitas:
{ "jsonrpc": "2.0", "id": 1, "method": "entity.delete", "params": { "id": "123" } }

Kedua metode disebut sebagai HTTP POST http://myservice.com/rpcapi

Sejauh ini saya belum menemukan cara modern dan fungsional untuk mendokumentasikan API JSON-RPC (yang juga dapat saya gunakan untuk menghasilkan tes). Harapan saya adalah API Blueprint tetapi tampaknya itu tidak benar-benar didukung. Adakah yang tahu rencana masa depan Cetak Biru API ini atau punya saran untuk struktur/alat lain yang mendukung ini?

@Dynom Saya dapat memberikan beberapa saran.
Anda dapat mencoba Aglio render for api blueprint, itu tidak membuat bagian atribut, tetapi menampilkan struktur dokumen dengan benar.
Alat lain adalah API Doc , saya sedang mengujinya saat ini dan sepertinya cocok.

Terima kasih @SvyatoslavVasiliev Saya tidak ingin menggunakan solusi dokumentasi sebaris dan API Doc mengiklankan bahwa itu untuk layanan RESTful, jadi saya tidak yakin apakah kita bisa berharap banyak dari itu dalam jangka panjang.

Apakah halaman ini membantu?
0 / 5 - 0 peringkat