рдПрдХ рдЖрд░рдИрдПрд╕рдЯреА рдПрдкреАрдЖрдИ рдХреЗ рд▓рд┐рдП рдпрд╣ рдЗрдВрдЧрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП 404 рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдХрд╛рдлреА рдЖрдо рд╣реИ рдХрд┐ рдХреЛрдИ рд░рд┐рдХреЙрд░реНрдб рдореМрдЬреВрдж рдирд╣реАрдВ рд╣реИред рдЕрднреА рдЬрдм рдРрд╕рд╛ рд╣реЛрддрд╛ рд╣реИ рддреЛ рдкрд░рд┐рдгрд╛рдо networkError
рд╣реЛрддрд╛ рд╣реИ, рдЬреЛ рдХрд┐ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ, рдЕрдкреЛрд▓реЛ рд╕реНрдЯреИрдХ рджреНрд╡рд╛рд░рд╛ рдЧреНрд░рд╛рдлрд╝рдХреЙрд▓ рддреНрд░реБрдЯрд┐ рдХреА рддреБрд▓рдирд╛ рдореЗрдВ рдЕрдзрд┐рдХ рдШрд╛рддрдХ рддреНрд░реБрдЯрд┐ рдХреЗ рд░реВрдк рдореЗрдВ рдорд╛рдирд╛ рдЬрд╛рддрд╛ рд╣реИред
рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдХреНрд╡реЗрд░реА рдХреЗ рд╕рд╛рде:
query BookQuery($slug: ID!) {
book(slug: $slug) @rest(type: "Book", path: "book/:slug") {
name
author
}
}
рдпрджрд┐ рдПрдВрдбрдкреЙрдЗрдВрдЯ рекрежрек рд▓реМрдЯрд╛рддрд╛ рд╣реИ рддреЛ рдпрд╣ рдПрдХ рдиреЗрдЯрд╡рд░реНрдХ рддреНрд░реБрдЯрд┐ рдХреЗ рд╕рд╛рде рдЕрд╕реНрд╡реАрдХрд╛рд░ рдХрд░рддрд╛ рд╣реИ рдЬрд┐рд╕реЗ рд╕рдВрднрд╛рд▓рд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП рдЬрд╣рд╛рдВ рдЗрд░рд╛рджрд╛ рдХреЗрд╡рд▓ error
рд░реЗрдВрдбрд░ рдкреНрд░реЛрдк рдХрд╛ рдЙрдкрдпреЛрдЧ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЛ рдЧреИрд░-рдШрд╛рддрдХ рддреНрд░реБрдЯрд┐ рд╕рдВрджреЗрд╢ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд░рддрд╛ рд╣реИред рдпрд╛рдиреА рдЕрдЧрд░ рдпрд╣ REST рдХреЗ рдмрдЬрд╛рдп рдПрдХ GraphQL рдХреНрд╡реЗрд░реА рдереА рддреЛ рдЗрд╕реЗ рдиреЗрдЯрд╡рд░реНрдХ рддреНрд░реБрдЯрд┐ рдХреЗ рд░реВрдк рдореЗрдВ рд╡рд░реНрдЧреАрдХреГрдд рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ рдФрд░ рдЗрд╕реЗ рдЗрд╕ рддрд░рд╣ рд╕реЗ рд╕рдВрднрд╛рд▓рд╛ рдЬрд╛рдПрдЧрд╛ред
рдореИрдВрдиреЗ рдЗрд╕реЗ рдареАрдХ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЕрдкрдиреЗ рдХрд╕реНрдЯрдо error-link
рдПрдХ рдЪреЗрдХ рдЬреЛрдбрд╝рдирд╛ рдерд╛ рдЬреЛ 404 рдиреЗрдЯрд╡рд░реНрдХ рддреНрд░реБрдЯрд┐ рдХреЛ GraphQL рддреНрд░реБрдЯрд┐ рдореЗрдВ рдмрджрд▓ рджреЗрддрд╛ рд╣реИ:
forward(operation).subscribe({
next: result => {...},
error: networkError => {
if (networkError.statusCode === 404) {
return observer.next({errors: [networkError]});
}
//...
observer.error(networkError);
},
complete: observer.complete.bind(observer),
});
рдЗрд╕рдореЗрдВ рдЕрднреА рднреА рд╕реБрдзрд╛рд░ рдХреА рдЧреБрдВрдЬрд╛рдЗрд╢ рд╣реИ, рд▓реЗрдХрд┐рди рдпрд╣ рд╕рдорд╕реНрдпрд╛ рдХрд╛ рд╕рдорд╛рдзрд╛рди рдХрд░рддрд╛ рд╣реИред
рдореИрдВ рд╕реЛрдЪ рд░рд╣рд╛ рдерд╛ рдХрд┐ рдХреНрдпрд╛ рдЗрд╕реЗ рдХрд┐рд╕реА рддрд░рд╣ apollo-link-rest
рдореЗрдВ рд╕рдВрдмреЛрдзрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП, рдЗрд╕рд▓рд┐рдП рдореБрдЭреЗ рд▓рдЧрд╛ рдХрд┐ рдореИрдВ рдмрд╛рддрдЪреАрдд рд╢реБрд░реВ рдХрд░реВрдВрдЧрд╛ред
рдпрд╣ рдПрдХ рдЕрдЪреНрдЫрд╛ рд╕рд╡рд╛рд▓ рд╣реИред - рдореИрдВ рдЗрд╕ рдкреИрдЯрд░реНрди рдХреЛ рджрд╕реНрддрд╛рд╡реЗрдЬрд╝реАрдХрд░рдг рдХреЗ рд╕реБрдЭрд╛рд╡ рдХреЗ рд░реВрдк рдореЗрдВ рдЬреЛрдбрд╝рд╛ рдЬрд╛рдирд╛ рдкрд╕рдВрдж рдХрд░реВрдВрдЧрд╛ред рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рд╕рдорд╕реНрдпрд╛рдУрдВ рдХрд╛ рдПрдХ рд╡рд░реНрдЧ рд╣реИ рдЬрд┐рд╕рд╕реЗ рдХрдИ рдЕрдкреЛрд▓реЛ-рд▓рд┐рдВрдХ рдкреАрдбрд╝рд┐рдд рд╣реИрдВ (рдЕрдкреЛрд▓реЛ-рд▓рд┐рдВрдХ-рд╕реНрдЯреЗрдЯ рджрд┐рдорд╛рдЧ рдореЗрдВ рдЖрддрд╛ рд╣реИ)ред
рдореИрдВ рдирд╣реАрдВ рдЬрд╛рдирддрд╛ рдХрд┐ рд╣рдореЗрдВ рдпрдХреАрди рд╣реИ рдХрд┐ рдпрд╣ рдЕрдкреЛрд▓реЛрд▓рд┐рдВрдХ рдХреЗ рд╕рднреА рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рдХреЗ рд▓рд┐рдП рд╕рд╣реА рдЙрддреНрддрд░ рд╣реИ, рд╣рд╛рд▓рд╛рдВрдХрд┐?
рдЗрд╕ рд╕рдордп рд╕рднреА http рддреНрд░реБрдЯрд┐рдпреЛрдВ рдХреЛ рдЕрдкреЛрд▓реЛ-рд▓рд┐рдВрдХ-рд░реЗрд╕реНрдЯ рдореЗрдВ рдирд┐рдпрдВрддреНрд░рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ
if (res.status >= 300) {
// Throw a JSError, that will be available under the
// "Network error" category in apollo-link-error
let parsed: any;
try {
parsed = await res.json();
} catch (error) {
// its not json
parsed = await res.text();
}
rethrowServerSideError(
res,
parsed,
`Response not successful: Received status code ${res.status}`,
);
}
return res;
рд╢рд╛рдпрдж рд╣рдо рдПрдХ рдХреЗрд╕ рдорд┐рд▓рд╛рди рдлрд╝рдВрдХреНрд╢рди рдЬреЛрдбрд╝рддреЗ рд╣реИрдВ рдЬреЛ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рдХреЛ рдпрд╣ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░рдиреЗ рджреЗрддрд╛ рд╣реИ рдХрд┐ рддреНрд░реБрдЯрд┐ рдХреИрд╕реЗ рд╕рдВрд╕рд╛рдзрд┐рдд рдХреА рдЬрд╛рддреА рд╣реИ?
404 == null
рдЬреИрд╕реЗ рд╕рд╛рдорд╛рдиреНрдп рдорд╛рдорд▓реЛрдВ рдХреЗ рд▓рд┐рдП рдХреБрдЫ рдЙрдкрдпреЛрдЧреА рдбрд┐рдлрд╝реЙрд▓реНрдЯ рдЙрдкрдпреЛрдЧрд┐рддрд╛рдПрдБ рдкреНрд░рджрд╛рди рдХрд░ рд╕рдХрддрд╛ рд╣реИ
рдЬрдмрдХрд┐ рдореИрдВ @fbartho рдХреА рдЪрд┐рдВрддрд╛ рд╕рд╛рдЭрд╛ рдХрд░рддрд╛
query postAndTags {
post @rest(type: "Post", path: "/post/1") {
id
title
}
tags @rest(type: "[Tag]", path: "/tags") {
name
}
}
рдФрд░ post
рдореМрдЬреВрдж рдирд╣реАрдВ рд╣реИ рдФрд░ 404 рд▓реМрдЯрд╛рддрд╛ рд╣реИ рддреЛ рдкреВрд░реА рдХреНрд╡реЗрд░реА рдиреЗрдЯрд╡рд░реНрдХ рддреНрд░реБрдЯрд┐ рдкрд░ рд╡рд┐рдлрд▓ рд╣реЛ рдЬрд╛рддреА рд╣реИред рд╣рд╛рд▓рд╛рдВрдХрд┐ рдпрд╣ рд╕рдВрднрд╡рддрдГ рдХреБрдЫ рдорд╛рдорд▓реЛрдВ рдореЗрдВ рд╡рд╛рдВрдЫрд┐рдд рд╣реЛ рд╕рдХрддрд╛ рд╣реИ, рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдкрд░рд┐рдгрд╛рдо рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП:
const data = {
post: null,
tags: [{ name: 'apollo' }, { name: 'graphql' }],
}
рдЕрдЧрд░ рд╣рдо рдЗрд╕реЗ рдкреВрд░рд╛ рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ, рддреЛ @paulpdaniels рдХреЗ рд╕реБрдЭрд╛рд╡ рдХреЗ рдЕрдиреБрд╕рд╛рд░ рдЕрддрд┐рд░рд┐рдХреНрдд рддреНрд░реБрдЯрд┐ рдкреНрд░рдмрдВрдзрди рдЬреЛрдбрд╝рдирд╛ рдмрд╣реБрдд рдЖрд╕рд╛рди рд╣реЛрдЧрд╛ред 4xx рддреНрд░реБрдЯрд┐рдпреЛрдВ рдХреЛ рджреЗрдЦрддреЗ рд╣реБрдП рдореИрдВ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдХреЗрд╡рд▓ 404 рдФрд░ 400/412/422 (рдореНрдпреВрдЯреЗрд╢рди рдкрд░) рджреЗрдЦ рд╕рдХрддрд╛ рд╣реВрдВ, рд╕рдВрднрд╡рддрдГ рдЧреИрд░-рдШрд╛рддрдХ рддреНрд░реБрдЯрд┐рдпрд╛рдВ рд╣реИрдВ рдЬрд┐рдиреНрд╣реЗрдВ рд╡рд┐рд╢реЗрд╖ рдЙрдкрдЪрд╛рд░ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИ, рдпрд╛ рддреЛ рдЧреНрд░рд╛рдлрд╝рдХреНрдпреВрдПрд▓ рддреНрд░реБрдЯрд┐рдпреЛрдВ рдпрд╛ рдкрд░рд┐рдгрд╛рдо рдХреЛ null
ред
рд╕рд╡рд╛рд▓ рдпрд╣ рд╣реИ рдХрд┐ рдХреНрдпрд╛ рдЗрди рддреНрд░реБрдЯрд┐рдпреЛрдВ рдХреЗ рд▓рд┐рдП рдХреБрдЫ рдирд┐рд╢реНрдЪрд┐рдд рд╣реИрдВрдбрд▓рд░ рдкреНрд░рджрд╛рди рдХрд░рдирд╛ рдЙрдЪрд┐рдд рд╣реИ рдпрд╛ рдпрджрд┐ рдЗрд╕реЗ error-link
рдпрд╛ рдЖрд╡реЗрджрди рдкрд░ рдЫреЛрдбрд╝ рджрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред рдЪреВрдВрдХрд┐ рдПрдХрд╛рдзрд┐рдХ рдЙрддреНрдкрд░рд┐рд╡рд░реНрддрди рдкреНрд░рд╢реНрдиреЛрдВ рдХрд╛ рд╕рдорд░реНрдерди рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ (рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ?) рдХреЗрд╡рд▓ рд╡рд░реНрддрдорд╛рди рд╢реЙрд░реНрдЯ рдЖ рд░рд╣рд╛ рд╣реИ рдЬреЛ рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ рдкреНрд░рд╛рд╕рдВрдЧрд┐рдХ рд▓рдЧрддрд╛ рд╣реИ рд╡рд╣ 404 рдЙрджрд╛рд╣рд░рдг рд╣реИ рдЬрд┐рд╕реЗ рдореИрдВрдиреЗ рдКрдкрд░ рд╕реЗ рд╢реБрд░реВ рдХрд┐рдпрд╛ рдерд╛ред
рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдореЗрдВ рдПрдХ рддреНрд░реБрдЯрд┐ рд╣реИрдВрдбрд▓рд░ рдЬреЛрдбрд╝рдиреЗ рдХрд╛ рд╡рд┐рдХрд▓реНрдк рднреА рд╣реИ, рд▓реЗрдХрд┐рди рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛ рдХреЛ error-link
рд╕реЗ рджреВрд░ рдХрд░ рд╕рдХрддрд╛ рд╣реИ рдЬреЛ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рд╡рд╣рд╛рдВ рд╕реЗ рд╕рдВрдмрдВрдзрд┐рдд рд╣реИред рдпрд╣ рдЗрд╕ рд▓рд┐рдВрдХ рдХреЗ рдПрдкреАрдЖрдИ рдХреЛ рдЕрдирд╛рд╡рд╢реНрдпрдХ рд░реВрдк рд╕реЗ рдЬрдЯрд┐рд▓ рднреА рдмрдирд╛ рд╕рдХрддрд╛ рд╣реИред
@marnusw рдпрд╣ рдПрдХ рдЕрдЪреНрдЫреА рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рд╣реИред рдореИрдВ рдПрдХ рд╕реБрдзрд╛рд░ рдХрд╛ рд╕рдорд░реНрдерди рдХрд░реВрдВрдЧрд╛ рдЬреЛ рдЖрдкрдХреЗ рд╡реНрдпрд╡рд╣рд╛рд░ рдХреЛ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ рд▓рд╛рдЧреВ рдХрд░рддрд╛ рд╣реИ!
рдХрдИ рдмрд╛рдХреА рдПрдкреАрдЖрдИ рдорд╛рдирдХреЛрдВ рдХреЗ рдЖрдзрд╛рд░ рдкрд░, рд╕рднреА рддреНрд░реБрдЯрд┐ рдХреЛрдб рдореЗрдВ рд╣рдореЗрд╢рд╛ рдПрдХ рдорд╛рдирд╡-рдкрдардиреАрдп рд╕рдВрджреЗрд╢ рд╢рд╛рдорд┐рд▓ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред рдЙрд╕ рдкрд░рд┐рдгрд╛рдо рдХреЛ рд░рджреНрдж рдХрд░рдирд╛, рдЬреИрд╕рд╛ рдХрд┐ #142 рдореЗрдВ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛, рдЙрд╕рдХреЗ рд╕реАрдзреЗ рд╡рд┐рд░реЛрдз рдореЗрдВ рд╣реИред
рдореИрдВрдиреЗ рекрежрек рдХреЛ рд╕рд╛рдорд╛рдиреНрдп рдиреЗрдЯрд╡рд░реНрдХ рддреНрд░реБрдЯрд┐рдпреЛрдВ рдХреЗ рд░реВрдк рдореЗрдВ рдмрд╣рд╛рд▓ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдкреАрдЖрд░ рд░рдЦрд╛ рд╣реИ, рдЕрдЪреНрдЫреЗ рдЖрд░рдИрдПрд╕рдЯреА рдПрдкреАрдЖрдИ рдкреНрд░рдерд╛рдУрдВ рдХреЗ рд╕рд╛рде рдореЗрд▓ рдЦрд╛рдиреЗ рдХреЗ рд▓рд┐рдП: https://github.com/apollographql/apolo-link-rest/pull/283
@christrude рдЬрдмрдХрд┐ рдореИрдВ null
, рддреЛ рдЗрд╕ рдкреБрд╕реНрддрдХрд╛рд▓рдп рдХреЛ рд░реАрд╕реНрдЯрдлреБрд▓ 404 рд╕рдореНрдореЗрд▓рди рдХреЛ рдЧреНрд░рд╛рдлрдХреНрдпреВрдПрд▓ null
рд╡рд╛рдкрд╕реА рдореВрд▓реНрдп рд╕рдореНрдореЗрд▓рди рдореЗрдВ рдкрд░рд┐рд╡рд░реНрддрд┐рдд рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдПред
@christrude рдЬрдмрдХрд┐ рдореИрдВ
null
, рддреЛ рдЗрд╕ рдкреБрд╕реНрддрдХрд╛рд▓рдп рдХреЛ рд░реАрд╕реНрдЯрдлреБрд▓ 404 рд╕рдореНрдореЗрд▓рди рдХреЛ рдЧреНрд░рд╛рдлрдХреНрдпреВрдПрд▓null
рд╡рд╛рдкрд╕реА рдореВрд▓реНрдп рд╕рдореНрдореЗрд▓рди рдореЗрдВ рдкрд░рд┐рд╡рд░реНрддрд┐рдд рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдПред
рдлрд┐рд░ рдЧреНрд░рд╛рдлрдХреНрдпреВрдПрд▓ рдЖрдкрдХреЛ рдпреВрдЖрдИ рдореЗрдВ 404 рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдХреЛ рд╕рдВрднрд╛рд▓рдиреЗ рдХрд╛ рдкреНрд░рд╕реНрддрд╛рд╡ рдХреИрд╕реЗ рджреЗрддрд╛ рд╣реИ? рдХреБрдЫ рдордд рдХрд░реЛ? рддреЛ рдЕрдиреБрд░реЛрдз рдмрд╕ рдЪреБрдкрдЪрд╛рдк рдорд░ рдЬрд╛рддреЗ рд╣реИрдВ? рдпрд╣ рдЕрд╡рд┐рд╢реНрд╡рд╕рдиреАрдп рд░реВрдк рд╕реЗ рдЦрд░рд╛рдм/рдЦрд░рд╛рдм рдпреВрдПрдХреНрд╕/рдПрдкреАрдЖрдИ рдкреНрд░рдмрдВрдзрди рд╣реИред
рдпрджрд┐ рдЖрдк рдХрд┐рд╕реА рдЖрдЗрдЯрдо рдХреЛ рдЖрдИрдбреА рджреНрд╡рд╛рд░рд╛ рдХреНрд╡реЗрд░реА рдХрд░рддреЗ рд╣реИрдВ рдФрд░ рд╡рд╛рдкрд╕ рд╢реВрдиреНрдп рд╣реЛ рдЬрд╛рддреЗ рд╣реИрдВ, рддреЛ рдпреВрдЖрдИ рдореЗрдВ рддрджрдиреБрд╕рд╛рд░ рдЗрд╕реЗ рд╕рдВрднрд╛рд▓ рд▓реЗрдВред рдпрджрд┐ рдЗрд╕рдореЗрдВ рдбреЗрдЯрд╛ рд╣реИ, рддреЛ рдЗрд╕реЗ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░реЗрдВред
рдореИрдВ рдпрд╣рд╛рдВ @marnusw рд╕реЗ рд╕рд╣рдордд рд╣реВрдВ, рд╣рдо рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдирд┐рдпрдВрддреНрд░рд┐рдд рдирд╣реАрдВ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХрд╛ рдмрд╛рдХреА рдПрдкреАрдЖрдИ рдХреНрдпрд╛ рдХрд░рддрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдкреБрд╕реНрддрдХрд╛рд▓рдп рдХреЛ рдЗрд╕рдХреА рдЕрдиреБрдорддрд┐ рджреЗрдиреЗ рдореЗрдВ рдЕрддреНрдпрдзрд┐рдХ рдкреНрд░рддрд┐рдмрдВрдзрд┐рдд рдирд╣реАрдВ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред 404 => рдирд▓ рдореИрдкрд┐рдВрдЧ рдПрдХ рдЕрдкреЗрдХреНрд╖рд╛рдХреГрдд рд╕рд╣рдЬ рдЬреНрдЮрд╛рди рдпреБрдХреНрдд рдЕрд░реНрде рд╣реИ рдЬреЛ рдЖрдкрдХреЛ рд▓рд╛рдкрддрд╛ рдбреЗрдЯрд╛ рдкрд░ рдЙрдбрд╝рд╛рдП рдмрд┐рдирд╛ рдЖрд░рдИрдПрд╕рдЯреА рдХреЗ рдПрдХрд▓ рд╕рдВрд╕рд╛рдзрди рдкреНрд░рддрд┐ рдЕрдиреБрд░реЛрдз рдореЙрдбрд▓ рд╕реЗ рдЧреНрд░рд╛рдлрдХреНрдпреВрдПрд▓ рдХреЗ рдмрд╣реБ-рд╕рдВрд╕рд╛рдзрди рдкреНрд░рддрд┐ рдЕрдиреБрд░реЛрдз (рдХреНрд▓рд╛рдЗрдВрдЯ рдкрд░рд┐рдкреНрд░реЗрдХреНрд╖реНрдп рд╕реЗ) рдореЗрдВ рдЬрд╛рдиреЗ рджреЗрддрд╛ рд╣реИред
рд╢рд╛рдпрдж рдЗрд╕ рд╡реНрдпрд╡рд╣рд╛рд░ рд╕реЗ рдСрдкреНрдЯ-рдЖрдЙрдЯ рдХрд░рдиреЗ рдХрд╛ рдПрдХ рдмреЗрд╣рддрд░ рддрд░реАрдХрд╛ рд╣реЛ рд╕рдХрддрд╛ рд╣реИ, рдЬреИрд╕реЗ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдЯреНрд░рд╛рдВрд╕рдлреЙрд░реНрдорд░ рдХрд╛ рдкреВрд░реНрд╡-рдкреИрдХ рд╕рдВрд╕реНрдХрд░рдг рдпрд╛ рдЕрдиреБрд░реЛрдз рдкреНрд░рдмрдВрдзрди рддрд░реНрдХ рдХрд╛ рдПрдХ рдЕрдореВрд░реНрдд рдЬреЛ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЛ http рд╕реНрдерд┐рддрд┐ рдкреНрд░рдмрдВрдзрди рдХреЛ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдирд┐рдпрдВрддреНрд░рд┐рдд рдХрд░рдиреЗ рджреЗрддрд╛ рд╣реИред рд▓реЗрдХрд┐рди рдореБрдЭреЗ рдирд╣реАрдВ рд▓рдЧрддрд╛ рдХрд┐ рдкрд┐рдЫрд▓реЗ рд╡реНрдпрд╡рд╣рд╛рд░ рдХреЛ рд╡рд╛рдкрд╕ рдХрд░рдирд╛ рд╕рд╣реА рддрд░реАрдХрд╛ рд╣реИред
рджреГрд╖реНрдЯрд┐рдХреЛрдг рдХреА рд╕рдорд╕реНрдпрд╛ рдХрд╛ рдПрдХ рд╣рд┐рд╕реНрд╕рд╛ рдпрд╣ рд╣реИ рдХрд┐ рдкрд░рд┐рдгрд╛рдо рд╕рджрд╕реНрдпрддрд╛ рдореЗрдВ рдиреАрдЪреЗ рдЖрдкрдХреЛ рдХреЛрдИ рдЬрд╛рдирдХрд╛рд░реА рдирд╣реАрдВ рд╣реИ рдХрд┐ рдХреНрдпрд╛ рдпрд╣ рдПрдХ рд╢реВрдиреНрдп рдкрд░рд┐рдгрд╛рдо рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ 404 рд╣реИ, рдпрд╛ рдпрджрд┐ рдпрд╣ рдХреЛрдИ рд╕рд╛рдордЧреНрд░реА рдирд╣реАрдВ рд╣реИ рддреЛ 201 рдпрд╛ рдХреБрдЫ рд╕рдорд╛рди рд╣реИред рдореИрдВрдиреЗ рдЗрд╕реЗ рдмрд╛рдж рдореЗрдВ рддрдп рдХрд┐рдпрд╛ рд╣реИ, рд╕реНрдерд┐рддрд┐ рдХреА рдЬрд╛рдВрдЪ рдХрд░ рд░рд╣рд╛ рд╣реИ рдФрд░ рдЗрд╕реЗ рдПрдХ рддреНрд░реБрдЯрд┐ рдлреЗрдВрдХрдиреЗ рдХреЗ рд▓рд┐рдП рдордЬрдмреВрд░ рдХрд░ рд░рд╣рд╛ рд╣реИ рдЬреЛ рдЗрд╕ рдореБрджреНрджреЗ рдХреЛ рдорд╛рдирддрд╛ рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рдореИрдВ рд╡рд╛рд╕реНрддрд╡рд┐рдХ рд╕рд░реНрд╡рд░ рддреНрд░реБрдЯрд┐ рд╕рдВрджреЗрд╢ рддрдХ рдирд╣реАрдВ рдкрд╣реБрдВрдЪ рд╕рдХрддрд╛, рдЦрд╛рд╕рдХрд░ рдореЗрд░реЗ рдорд╛рдорд▓реЗ рдореЗрдВ рдХреНрдпреЛрдВрдХрд┐ рд╣рдо рдПрдХ рдСрде рдЯреЛрдХрди рдЗрдВрдЬреЗрдХреНрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд╕реНрдЯрдо рдлрд╝реЗрдЪ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВ , рдФрд░ рдЕрдкреЛрд▓реЛ рдЗрд╕реЗ рд╣рдЯрд╛рдиреЗ рд╕реЗ рдкрд╣рд▓реЗ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ рдХрд░ рд╕рдХрддрд╛ред рдореЗрд░рд╛ рд╕рдорд╛рдзрд╛рди рдПрдХ рдорд╛рдорд▓реЗ рд╕реЗ рдЕрд▓рдЧ, рдРрдк рдореЗрдВ рдЕрдиреНрдп 404 рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛рдУрдВ рдХреЗ рд▓рд┐рдП рдПрдХ рдЦрд░рд╛рдм рдХрдВрдмрд▓ рд╣реИред