أهلا،
فقط قمت بتحديث المكتبة ولديك مشاكل في الترقية. بدون أي تغييرات ، تعمل الوظيفة كما هو متوقع مع تحذير بالانتقال إلى النمط الجديد. عندما أقوم بإجراء التغييرات المطلوبة كما هو موضح أدناه ، أحصل على أن كلا من {args} و {args.name} غير معرفين. ها هو الكود:
const restLink = new RestLink({
uri: 'https://avoindata.prh.fi/bis/v1',
typePatcher: {
BusinessPayload: data => ({
...data,
results: data.results.map(business => ({
__typename: 'Business',
...business
}))
})
}
});
const client = new ApolloClient({
link: restLink,
cache: new InMemoryCache()
});
const query = gql`
query($name: String!) {
companies(name: $name)
@rest(
type: "BusinessPayload"
path: "?totalResults=false&maxResults=10&resultsFrom=0&name={args.name}"
) {
results {
name
businessId
}
}
}
`;
// And then call the query:
client.query({ query, variables: { name: value } });
هل فاتني شيء؟
المشكلة نفسها. لقد أصبحت غير معرف باستخدام أسلوب {args.id} الجديد.
التقاط رائع @ karensghaipengz - هذه أولوية رئيسية بالنسبة لي ، لكن تمت مقاطعتك بالأمس قبل أن أتمكن من اختبار هذه التغييرات بالكامل.
karensg بينما يجب أن يعمل بناء الجملة الخاص بك (وهو خطأ لا يحدث) ، كنت أنوي استخدام واجهة برمجة التطبيقات بشكل مختلف قليلاً.
بدلاً من: path: "?totalResults=false&maxResults=10&resultsFrom=0&name={args.name}"
قصدته أن يكون: path: "?totalResults=false&maxResults=10&resultsFrom=0&{args}"
يأخذ {args}
أو {args.query.deeper}
الكائن المشار إليه بواسطة مسار المفتاح ، ثم يحوله إلى سلسلة استعلام. لذا فإن &{args}
في حالتك سيكون { name: "foo" }
يصبح &name=foo
حيث يحصل foo تلقائيًا على encodeURIComponent
عليه.
أعتبر هذا ثاني أهم أولوياتي ، لكني أحارب الحرائق في العمل ، لذا لن أصل إليها إلا بعد الظهر. بشكل عام ، أقدر أي مساعدة يمكن أن تقدمها يا رفاق ، يمكنك أن تجدني في فترة الركود ApolloGraphQL في غرفة الراحة # apollo-link-rest.
أحد الأشياء التي قد تكون مفيدة حقًا / تسريع إصلاحي هو بعض التعليمات البرمجية لاختبارات الوحدة لكل حالة تستخدمها ، حتى أتمكن من التأكد من أنها تعمل من أجلك للمضي قدمًا.
ثابت في v0.4.1: https://github.com/apollographql/apollo-link-rest/releases/tag/v0.4.1 يرجى إعلامي إذا كنت لا تزال تراه!
@ fbartho شكرا على الإصلاحات! إنه يعمل الآن لحالة الاستخدام الخاصة بي.
شكرا لك مرة أخرى!
بعد الترقية إلى الإصدار v0.4.1 ، يعمل نمط {args.id} الجديد الآن مع حالتي ، ولم يعد غير محدد.
...
const GET_DOG_IMAGES_BY_BREED = gql`
query breeds ($breed: String!) {
imagesByBreed(breed: $breed) @rest(
type: "imagesByBreedResult"
path: "breed/{args.breed}/images"
endpoint: "dogApi"
) {
status
message
}
}
`
...
<Query query={GET_DOG_IMAGES_BY_BREED}
notifyOnNetworkStatusChange
variables={{ breed: 'hound' }}
>
{({ refetch, error, data, networkStatus, }) => {
expect(error).toBeUndefined()
expect(data).toBeDefined()
}}
</Query>
...
التعليق الأكثر فائدة
ثابت في v0.4.1: https://github.com/apollographql/apollo-link-rest/releases/tag/v0.4.1 يرجى إعلامي إذا كنت لا تزال تراه!