Apollo-link-rest: Bagaimana cara melakukan panggilan ke URL arbitrer?

Dibuat pada 16 Feb 2019  ·  7Komentar  ·  Sumber: apollographql/apollo-link-rest

Hai,

Apakah ada cara untuk memanggil URL arbitrer dalam kueri?

Dokumen mengatakan bahwa path dalam direktif @rest dapat mengambil jalur atau URL lengkap. Namun, saat meneruskan kueri berikut, saya mendapatkan kesalahan:

query getFoo {
  foo @rest(type: "Foo", path: "https://foo.com/foo") {
    bar
  }
}
Deprecated: '@rest(path:' contains a ':' colon, this format will be removed in future versions
index.js:1446 [Network error getIP]: Missing parameters to run query, specify it in the query params or use an export directive. (If you need to use ":" inside a variable string make sure to encode the variables properly using `encodeURIComponent`. Alternatively see documentation about using pathBuilder.)

Ketika saya kemudian melewati path="${encodeURIComponent('https://foo.com/foo')}" , tautan REST mencoba menekan https://[my current url]https%3A%2F%2Ffoo.com%2Ffoo .

pathBuilder juga menambahkan jalur bawaan saya ke URL asli saya.

Apakah satu-satunya pilihan mendaftarkan setiap URL yang akan dipanggil aplikasi Anda dalam pengaturan tautan REST? Jika demikian, saya pikir dokumen harus diperbarui untuk mencerminkan path tidak mengambil URL lengkap.

bug 🐛 help wanted 🛠

Semua 7 komentar

Terima kasih telah melaporkan ini @timhwang21 Ini jelas merupakan bug yang diperkenalkan sekitar setahun yang lalu.

Saya kira banyak orang mengonfigurasi "titik akhir dasar" mereka sekali untuk seluruh RestLink, jadi saya kira orang tidak terlalu banyak menggunakan fitur ini. -- Menekan peringatan ini dan memulihkan dukungan untuk url lengkap dalam anotasi @rest() seharusnya cukup mudah.

Saya akan mendukung membantu meninjau PR jika ada yang ingin berkontribusi memperbaikinya.

Luar biasa, saya bisa istirahat di akhir pekan. @fbartho apakah Anda memiliki petunjuk tentang bagian mana dari basis kode yang harus saya mulai lihat terlebih dahulu? Terima kasih.

@timhwang21 Sayangnya, kami benar-benar hanya memiliki satu file sumber di basis kode, itu tidak terlalu panjang, tetapi saya berharap Anda perlu mengubah beberapa tempat di seluruh file.

Saya mengalami ini dan akan menemukan nilai dalam mengizinkan url lengkap di jalur atau opsi lain untuk menentukan url baru, seperti url: "https://domain.com/api/path/1" .

@timhwang21 apakah Anda dapat menyiapkan sesuatu?

Fwiw di sini adalah sedikit pekerjaan yang saya lakukan untuk membuatnya berfungsi sementara itu.

  1. Tentukan titik akhir empty dalam konfigurasi. Perhatikan ada ruang aktual dalam nilai empty: ' ' .
    image
  2. Gunakan ini sebagai titik akhir dalam kueri Anda, berikut adalah contoh penyelesaian permintaan air terjun...
    image

Itu cukup banyak.

Saya belum, kami akhirnya memigrasi layanan istirahat kami ke GraphQL.

Pada Senin, 22 Juli 2019 pukul 09:14 Mat Silva [email protected] menulis:

Saya mengalami ini dan akan menemukan nilai dalam mengizinkan url lengkap di jalur atau
opsi lain untuk menentukan url baru, seperti url: "
https://domain.com/api/path/1 ".

@timhwang21 https://github.com/timhwang21 apakah kamu bisa mencambuk
sesuatu terjadi?

Fwiw di sini adalah sedikit pekerjaan yang saya lakukan untuk membuatnya berfungsi sementara itu.

  1. Tentukan titik akhir kosong di konfigurasi. Perhatikan ada yang sebenarnya
    spasi dalam nilai kosong: ' '.
    [gambar: gambar]
    https://user-images.githubusercontent.com/4511972/61635093-c85eba80-ac60-11e9-87aa-eae6cf788e59.png
  2. Gunakan ini sebagai titik akhir dalam kueri Anda, berikut adalah contoh dari
    menyelesaikan permintaan air terjun...
    [gambar: gambar]
    https://user-images.githubusercontent.com/4511972/61635160-f0e6b480-ac60-11e9-8879-e78f0ae4d982.png

Itu cukup banyak.


Anda menerima ini karena Anda disebutkan.
Balas email ini secara langsung, lihat di GitHub
https://github.com/apollographql/apollo-link-rest/issues/192?email_source=notifications&email_token=ABMPWCWNFOUEL4WFA3GSY7TQAWXEZA5CNFSM4GX3BPZ2YY3PNVWWK3TUL52HS4DFVREXG43VMXVBWW63
atau matikan utasnya
https://github.com/notifications/unsubscribe-auth/ABMPWCVPMVEBZQSMS2CGQQLQAWXEZANCNFSM4GX3BPZQ
.

layanan istirahat ke GraphQL.

yup itu akan berhasil juga :grin:

Mengalami masalah ini saat menggunakan campuran API Github, beberapa di antaranya belum ada di API GraphQL mereka. API Istirahat mereka memiliki banyak bidang URL absolut yang dapat saya ekspor dan gunakan kembali, namun tangkapan : mencegahnya bekerja. Solusi dari @matsilva meretas di titik akhir yang kosong memang berhasil untuk saya.

Apakah halaman ini membantu?
0 / 5 - 0 peringkat