Apollo-link-rest: Tidak dapat menggabungkan sisa w / graphql dalam kueri yang sama

Dibuat pada 4 Apr 2018  ·  9Komentar  ·  Sumber: apollographql/apollo-link-rest

Ringkasan

Saya mencoba mencampurkan permintaan istirahat dengan permintaan graphql. Kedua permintaan merujuk ke sumber daya yang sama dan berfungsi saat dijalankan secara individual. Namun, saat mencoba mengeksekusi keduanya secara bersamaan

const QUERY_AUTHORS_AND_PEOPLE = gql`
    query {
        people @rest(type: "[Person]", path: "authors/") {
            firstName
        }

        authors {
            id
            firstName
        }
    }

Saya mendapatkan kesalahan berikut

image

Anda dapat menemukan contoh yang saya maksud di sini

blocking bug 🐛 has-reproduction help wanted 🛠

Komentar yang paling membantu

Sebenarnya saya baru saja memeriksa dan itu sudah menjadi bagian dari apollo-utilities. @fbartho Saya akan bersedia melakukan ini jika tidak ada orang lain yang sudah mengerjakannya. Sepertinya perbaikan yang relatif mudah. Akan perlu membayangkan beberapa skenario pengujian yang berbeda ...

Semua 9 komentar

Hai @ chimon2000 - ini terdengar seperti bug besar, apakah Anda merasa nyaman mengirimkan unit-test untuk kami yang dapat mereproduksi ini?

Bergantian, PR yang memperbaiki ini akan menjadi lebih baik. Saya senang membantu, tetapi lingkungan pengujian utama saya saat ini tidak menggunakan server GraphQL yang sebenarnya, jadi saya belum cukup siap untuk memverifikasi bahwa ini berfungsi.

Hai @fbartho , terima kasih atas tanggapan yang cepat. Saya menambahkan contoh repo saya yang berisi kode yang diperlukan untuk mereproduksi masalah dengan contoh angular dan (p) react, tetapi saya juga dapat melihat tentang menambahkan unit test untuk ini.

Saya tidak terlalu mahir dengan cara kerja tautan apollo.

Hai @fbartho , saya telah menambahkan tes gagal PR untuk kalian lihat - ini memang masalah, semoga bermanfaat.

Melihat sumbernya, sepertinya satu-satunya saat forward dipanggil untuk mengirim operasi ke tautan berikutnya adalah here .

Saya pikir jika kita ingin mendukung perilaku penggabungan, kita perlu memeriksa kueri menghapus potongan non-sisa dan meneruskannya ke tautan berikutnya.

Saya pikir pada dasarnya menyalin bagian ini dari apollo-link-state akan cukup (bahkan mungkin masuk akal untuk berkoordinasi dengan pengelola untuk mengekstrak logika semacam itu ke dalam paket terpisah karena tampaknya sangat berguna untuk pembuat tautan).

Sebenarnya saya baru saja memeriksa dan itu sudah menjadi bagian dari apollo-utilities. @fbartho Saya akan bersedia melakukan ini jika tidak ada orang lain yang sudah mengerjakannya. Sepertinya perbaikan yang relatif mudah. Akan perlu membayangkan beberapa skenario pengujian yang berbeda ...

@paulpdaniels Bung, saya suka itu. Tolong lakukan itu.

Skenario berbahaya tertentu Saya ingin memastikan bahwa kami mendukung / tidak merusak:

  • Menumpuk @rest() di dalam @rest() kueri dengan `@export (sebagai:…) digunakan
  • Menumpuk @rest() di dalam kueri server-graphql dengan `@export (sebagai:…) digunakan
  • Menumpuk @rest() di dalam @client kueri
  • Memastikan ini tidak merusak jalur kode Nama Jenis Patcher!

export directive tampaknya tidak berfungsi di dalam kueri server-graphql. Saya mendapatkan kesalahan berikut: Direktif tidak dikenal "ekspor".

@marcelombc itu akan tergantung pada implementasi server Anda. Saya kira, apollo-server disertakan dengan itu di luar kotak, tetapi saya tidak berpikir itu diperlukan untuk memenuhi spesifikasi.

@paulpriels Anda benar. Saya menggunakan graphene di server dan saya hanya perlu membuat arahan khusus untuk mendukung @export. Terima kasih atas bantuan Anda.

Apakah halaman ini membantu?
0 / 5 - 0 peringkat