BIF рдкреИрдЯрд░реНрди: рд╕рд░реНрд╡рд░ рдбреЗрдЯрд╛ рдХреЗ рд╕рд╛рде рдХреНрд▓реАрди-рдПрдВрдб рдХреЛрдб рдФрд░ рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рдХрд╛рд░реНрдп

рд╕рд╛рдордЧреНрд░реА, рдЬрд┐рд╕рдХрд╛ рдЕрдиреБрд╡рд╛рдж рдЖрдЬ рд╣рдо рдкреНрд░рдХрд╛рд╢рд┐рдд рдХрд░рддреЗ рд╣реИрдВ, рдЗрд╕ рдкрд░ рдзреНрдпрд╛рди рдХреЗрдВрджреНрд░рд┐рдд рдХрд░реЗрдЧрд╛ рдХрд┐ рдРрд╕реА рд╕реНрдерд┐рддрд┐ рдореЗрдВ рдХреНрдпрд╛ рдХрд░рдирд╛ рд╣реИ рдЬрд╣рд╛рдВ рд╕рд░реНрд╡рд░ рд╕реЗ рдкреНрд░рд╛рдкреНрдд рдбреЗрдЯрд╛ рдХреНрд▓рд╛рдЗрдВрдЯ рдХреА рдЬрд░реВрд░рддреЛрдВ рдХреЗ рдЕрдиреБрд░реВрдк рдирд╣реАрдВ рджрд┐рдЦрддрд╛ рд╣реИред рдЕрд░реНрдерд╛рддреН, рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ рд╣рдо рдЗрд╕ рддрд░рд╣ рдХреА рдПрдХ рд╡рд┐рд╢рд┐рд╖реНрдЯ рд╕рдорд╕реНрдпрд╛ рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд░реЗрдВрдЧреЗ, рдФрд░ рдлрд┐рд░ рд╣рдо рдЗрд╕реЗ рд╣рд▓ рдХрд░рдиреЗ рдХреЗ рдХрдИ рддрд░реАрдХреЛрдВ рдХрд╛ рд╡рд┐рд╢реНрд▓реЗрд╖рдг рдХрд░реЗрдВрдЧреЗред

рдЫрд╡рд┐

рд╡рд┐рдлрд▓ рд╕рд░реНрд╡рд░ API рдХреА рд╕рдорд╕реНрдпрд╛


рдЖрдЗрдП рдХрдИ рд╡рд╛рд╕реНрддрд╡рд┐рдХ рдкрд░рд┐рдпреЛрдЬрдирд╛рдУрдВ рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рдПрдХ рд╕рд╢рд░реНрдд рдЙрджрд╛рд╣рд░рдг рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд░реЗрдВред рдорд╛рди рд▓реАрдЬрд┐рдП рдХрд┐ рд╣рдо рдПрдХ рд╕рдВрдЧрдарди рдХреЗ рд▓рд┐рдП рдПрдХ рдирдИ рд╡реЗрдмрд╕рд╛рдЗрдЯ рд╡рд┐рдХрд╕рд┐рдд рдХрд░ рд░рд╣реЗ рд╣реИрдВ рдЬреЛ рдХреБрдЫ рд╕рдордп рд╕реЗ рдореМрдЬреВрдж рд╣реИред рдЙрд╕рдХреЗ рдкрд╛рд╕ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдЕрдиреНрдп рд╕рдорд╛рдкрди рдмрд┐рдВрджреБ рд╣реИрдВ, рд▓реЗрдХрд┐рди рд╣рдо рдЬреЛ рдмрдирд╛рдиреЗ рдЬрд╛ рд░рд╣реЗ рд╣реИрдВ, рдЙрд╕рдХреЗ рд▓рд┐рдП рд╡реЗ рдХрд╛рдлреА рдбрд┐рдЬрд╝рд╛рдЗрди рдирд╣реАрдВ рд╣реИрдВред рдпрд╣рд╛рдВ рд╣рдореЗрдВ рдХреЗрд╡рд▓ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЛ рдкреНрд░рдорд╛рдгрд┐рдд рдХрд░рдиреЗ, рдЙрд╕рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЬрд╛рдирдХрд╛рд░реА рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдФрд░ рдЗрд╕ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рд╕реЗ рдЕрдирд╡рд╛рдВрдЯреЗрдб рдиреЛрдЯрд┐рдлрд┐рдХреЗрд╢рди рдХреА рд╕реВрдЪреА рдбрд╛рдЙрдирд▓реЛрдб рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕рд░реНрд╡рд░ рддрдХ рдкрд╣реБрдВрдЪрдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред рдкрд░рд┐рдгрд╛рдорд╕реНрд╡рд░реВрдк, рд╣рдо рд╕рд░реНрд╡рд░ API рдХреЗ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рд╕рдорд╛рдкрди рдмрд┐рдВрджреБрдУрдВ рдореЗрдВ рд░реБрдЪрд┐ рд░рдЦрддреЗ рд╣реИрдВ:

  • /auth : рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЛ рдЕрдзрд┐рдХреГрдд рдХрд░рддрд╛ рд╣реИ рдФрд░ рдПрдХреНрд╕реЗрд╕ рдЯреЛрдХрди рд▓реМрдЯрд╛рддрд╛ рд╣реИред
  • /profile : рдореВрд▓ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдЬрд╛рдирдХрд╛рд░реА рд▓реМрдЯрд╛рддрд╛ рд╣реИред
  • /notifications : рдЖрдк рдмрд┐рдирд╛ рдкрдврд╝реЗ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рд╕реВрдЪрдирд╛рдПрдБ рдкреНрд░рд╛рдкреНрдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред

рдХрд▓реНрдкрдирд╛ рдХреАрдЬрд┐рдП рдХрд┐ рд╣рдорд╛рд░реЗ рдЖрд╡реЗрджрди рдХреЛ рд╣рдореЗрд╢рд╛ рдПрдХ рд╣реА рдЗрдХрд╛рдИ рдореЗрдВ рдпрд╣ рд╕рднреА рдбреЗрдЯрд╛ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИ, рдЕрд░реНрдерд╛рддреН, рдЖрджрд░реНрд╢ рд░реВрдк рд╕реЗ, рдпрд╣ рдЕрдЪреНрдЫрд╛ рд╣реЛрдЧрд╛ рдпрджрд┐ рддреАрди рд╕рдорд╛рдкрди рдмрд┐рдВрджреБрдУрдВ рдХреЗ рдмрдЬрд╛рдп рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдХреЗрд╡рд▓ рдПрдХ рд╣реА рд╣реЛрдЧрд╛ред
рд╣рд╛рд▓рд╛рдБрдХрд┐, рд╣рдо рдмрд╣реБрдд рдЕрдзрд┐рдХ рд╕рдорд╛рдкрди рдмрд┐рдВрджреБрдУрдВ рдХреА рддреБрд▓рдирд╛ рдореЗрдВ рдмрд╣реБрдд рдЕрдзрд┐рдХ рд╕рдорд╕реНрдпрд╛рдУрдВ рдХрд╛ рд╕рд╛рдордирд╛ рдХрд░ рд░рд╣реЗ рд╣реИрдВред рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ, рд╣рдо рдЗрд╕ рддрдереНрдп рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдмрд╛рдд рдХрд░ рд░рд╣реЗ рд╣реИрдВ рдХрд┐ рдЬреЛ рдбреЗрдЯрд╛ рд╣рдореЗрдВ рдкреНрд░рд╛рдкреНрдд рд╣реЛрддрд╛ рд╣реИ рд╡рд╣ рд╕рдмрд╕реЗ рдЕрдЪреНрдЫрд╛ рддрд░реАрдХрд╛ рдирд╣реАрдВ рджрд┐рдЦрддрд╛ рд╣реИред

рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдПрдВрдбрдкреЙрдЗрдВрдЯ /profile рдкреНрд░рд╛рдЪреАрди рдХрд╛рд▓ рдореЗрдВ рдмрдирд╛рдпрд╛ рдЧрдпрд╛ рдерд╛, рдпрд╣ рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдореЗрдВ рдирд╣реАрдВ рд▓рд┐рдЦрд╛ рдЧрдпрд╛ рдерд╛, рдкрд░рд┐рдгрд╛рдорд╕реНрд╡рд░реВрдк, рдЗрд╕рдореЗрдВ рджрд┐рдП рдЧрдП рдбреЗрдЯрд╛ рдХреЗ рдЧреБрдгреЛрдВ рдХреЗ рдирд╛рдо рдПрдХ рдЬреЗрдПрд╕ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЗ рд▓рд┐рдП рдЕрд╕рд╛рдорд╛рдиреНрдп рджрд┐рдЦрддреЗ рд╣реИрдВ:

 { "Profiles": [   {     "id": 1234,     "Christian_Name": "David",     "Surname": "Gilbertson",     "Photographs": [       {         "Size": "Medium",         "URLS": [           "/images/david.png"         ]       }     ],     "Last_Login": "2018-01-01"   } ] } 

рд╕рд╛рдорд╛рдиреНрдп рддреМрд░ рдкрд░ - рдХреБрдЫ рднреА рдЕрдЪреНрдЫрд╛ рдирд╣реАрдВ рд╣реИред

рд╕рдЪ рд╣реИ, рдпрджрд┐ рдЖрдк рдпрд╣ рджреЗрдЦрддреЗ рд╣реИрдВ рдХрд┐ рд╕рдорд╛рдкрди рдмрд┐рдВрджреБ /notifications рдХреНрдпрд╛ рдкреИрджрд╛ рдХрд░рддреА рд╣реИрдВ, рддреЛ /profile рд╕реЗ рдЙрдкрд░реЛрдХреНрдд рдбреЗрдЯрд╛ рдмрд╣реБрдд рдЕрдЪреНрдЫрд╛ рд▓рдЧреЗрдЧрд╛:

 { "data": {   "msg-1234": {     "timestamp": "1529739612",     "user": {       "Christian_Name": "Alice",       "Surname": "Guthbertson",       "Enhanced": "True",       "Photographs": [         {           "Size": "Medium",           "URLS": [             "/images/alice.png"           ]         }       ]     },     "message_summary": "Hey I like your hair, it re",     "message": "Hey I like your hair, it really goes nice with your eyes"   },   "msg-5678": {     "timestamp": "1529731234",     "user": {       "Christian_Name": "Bob",       "Surname": "Smelthsen",       "Photographs": [         {           "Size": "Medium",           "URLS": [             "/images/smelth.png"           ]         }       ]     },     "message_summary": "I'm launching my own cryptocu",     "message": "I'm launching my own cryptocurrency soon and many thanks for you to look at and talk about"   } } } 

рдпрд╣рд╛рдВ рд╕рдВрджреЗрд╢реЛрдВ рдХреА рд╕реВрдЪреА рдПрдХ рд╡рд╕реНрддреБ рд╣реИ, рди рдХрд┐ рдПрдХ рд╕рд░рдгреАред рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдпрд╣рд╛рдВ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдбреЗрдЯрд╛ рд╣реИрдВ, рдЬреЛ рдХрд┐ рдХреЗрд╡рд▓ рдЕрдирдкреЗрдХреНрд╖рд┐рдд рд░реВрдк рд╕реЗ /profile рдПрдВрдбрдкреЙрдЗрдВрдЯ рдХреЗ рдорд╛рдорд▓реЗ рдореЗрдВ рд╡реНрдпрд╡рд╕реНрдерд┐рдд рд╣реИрдВред рдФрд░ - рдпрд╣рд╛рдБ рдПрдХ рдЖрд╢реНрдЪрд░реНрдп рдХреА рдмрд╛рдд рд╣реИ - timestamp рд╕рдВрдкрддреНрддрд┐ рдореЗрдВ 1970 рдХреА рд╢реБрд░реБрдЖрдд рд╕реЗ рд╕реЗрдХрдВрдб рдХреА рд╕рдВрдЦреНрдпрд╛ рд╢рд╛рдорд┐рд▓ рд╣реИред

рдЕрдЧрд░ рдореБрдЭреЗ рдЙрд╕ рдирд╛рд░рдХреАрдп рдЕрд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рдкреНрд░рдгрд╛рд▓реА рдХреА рд╡рд╛рд╕реНрддреБрдХрд▓рд╛ рдХрд╛ рдПрдХ рдЪрд┐рддреНрд░ рдмрдирд╛рдирд╛ рдерд╛, рдЬрд┐рд╕рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╣рдордиреЗ рдЕрднреА рдмрд╛рдд рдХреА рд╣реИ, рддреЛ рдпрд╣ рдиреАрдЪреЗ рджрд┐рдП рдЧрдП рдЪрд┐рддреНрд░ рдореЗрдВ рджрд┐рдЦрд╛рдпрд╛ рдЧрдпрд╛ рд╣реИред рдЗрд╕ рд╕рд░реНрдХрд┐рдЯ рдХреЗ рдЙрди рд╣рд┐рд╕реНрд╕реЛрдВ рдХреЗ рд▓рд┐рдП рд▓рд╛рд▓ рд░рдВрдЧ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рдЬреЛ рдЖрдЧреЗ рдХреЗ рдХрд╛рдо рдХреЗ рд▓рд┐рдП рдЦрд░рд╛рдм рдбреЗрдЯрд╛ рдХреЗ рдЕрдиреБрд░реВрдк рд╣реЛрддреЗ рд╣реИрдВред


рд╕рд┐рд╕реНрдЯрдо рдЖрд░реЗрдЦ

рд╣рдо, рдЗрди рдкрд░рд┐рд╕реНрдерд┐рддрд┐рдпреЛрдВ рдореЗрдВ, рдЗрд╕ рдкреНрд░рдгрд╛рд▓реА рдХреА рд╡рд╛рд╕реНрддреБрдХрд▓рд╛ рдХреЛ рдареАрдХ рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдирд╣реАрдВ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдЖрдк рдмрд╕ рдЗрди рддреАрди рдПрдкреАрдЖрдИ рд╕реЗ рдбреЗрдЯрд╛ рд▓реЛрдб рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдореЗрдВ рдЗрд╕ рдбреЗрдЯрд╛ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдпрджрд┐ рдЖрдкрдХреЛ рдкреГрд╖реНрда рдкрд░ рдкреВрд░реНрдг рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдирд╛рдо рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рддреЛ рд╣рдореЗрдВ Christian_Name рдФрд░ Surname рдЧреБрдгреЛрдВ рдХреЛ рд╕рдВрдпреЛрдЬрд┐рдд рдХрд░рдирд╛ рд╣реЛрдЧрд╛ред

рдпрд╣рд╛рдВ рдореИрдВ рдирд╛рдореЛрдВ рдХреЗ рд╕рдВрдмрдВрдз рдореЗрдВ рдПрдХ рдЯрд┐рдкреНрдкрдгреА рдХрд░рдирд╛ рдЪрд╛рд╣реВрдВрдЧрд╛ред рдХрд┐рд╕реА рд╡реНрдпрдХреНрддрд┐ рдХреЗ рдкреВрд░реЗ рдирд╛рдо рдХреЛ рдПрдХ рд╡реНрдпрдХреНрддрд┐рдЧрдд рдирд╛рдо рдФрд░ рдЙрдкрдирд╛рдо рдореЗрдВ рд╡рд┐рднрд╛рдЬрд┐рдд рдХрд░рдиреЗ рдХрд╛ рд╡рд┐рдЪрд╛рд░ рдкрд╢реНрдЪрд┐рдореА рджреЗрд╢реЛрдВ рдХреА рд╡рд┐рд╢реЗрд╖рддрд╛ рд╣реИред рдпрджрд┐ рдЖрдк рдЕрдВрддрд░реНрд░рд╛рд╖реНрдЯреНрд░реАрдп рдЙрдкрдпреЛрдЧ рдХреЗ рд▓рд┐рдП рдбрд┐рдЬрд╝рд╛рдЗрди рдХрд┐рдпрд╛ рдЧрдпрд╛ рдХреБрдЫ рд╡рд┐рдХрд╕рд┐рдд рдХрд░ рд░рд╣реЗ рд╣реИрдВ, рддреЛ рд╡реНрдпрдХреНрддрд┐ рдХреЗ рдкреВрд░реЗ рдирд╛рдо рдХреЛ рдПрдХ рдЕрджреГрд╢реНрдп рд╕реНрдЯреНрд░рд┐рдВрдЧ рдХреЗ рд░реВрдк рдореЗрдВ рдорд╛рдирдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░реЗрдВ, рдФрд░ рдЗрд╕ рдмрд╛рдд рдХрд╛ рдХреЛрдИ рдЕрдиреБрдорд╛рди рди рд▓рдЧрд╛рдПрдВ рдХрд┐ рдЗрд╕ рд╕реНрдЯреНрд░рд┐рдВрдЧ рдХреЛ рдЫреЛрдЯреЗ рднрд╛рдЧреЛрдВ рдореЗрдВ рдХреИрд╕реЗ рд╡рд┐рднрд╛рдЬрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рдП рддрд╛рдХрд┐ рд╡реЗ рдЙрди рдЬрдЧрд╣реЛрдВ рдкрд░ рдШрдЯрд┐рдд рд╣реЛ рд╕рдХреЗрдВ, рдЬрд╣рд╛рдВ рдкрд░ рд╣реБрдЖ рдерд╛ рдЕрдиреМрдкрдЪрд╛рд░рд┐рдХрддрд╛ рдХреА рдЬрд░реВрд░рдд рд╣реИ рдпрд╛ рдЕрдиреМрдкрдЪрд╛рд░рд┐рдХ рд╢реИрд▓реА рдореЗрдВ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рд╕реЗ рдЕрдкреАрд▓ рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВред

рд╣рдорд╛рд░реА рдЕрдкреВрд░реНрдг рдбреЗрдЯрд╛ рд╕рдВрд░рдЪрдирд╛рдУрдВ рдкрд░ рд╡рд╛рдкрд╕ рдЬрд╛рдПрдВред рдкрд╣рд▓реА рд╕реНрдкрд╖реНрдЯ рд╕рдорд╕реНрдпрд╛ рдЬреЛ рдпрд╣рд╛рдВ рджреЗрдЦреА рдЬрд╛ рд╕рдХрддреА рд╣реИ, рд╡рд╣ рд╣реИ рдпреВрдЬрд░ рдЗрдВрдЯрд░рдлреЗрд╕ рдХреЛрдб рдореЗрдВ рдЕрд╕рдорд╛рди рдбреЗрдЯрд╛ рдХреЛ рд╕рдВрдпреЛрдЬрд┐рдд рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ред рдЗрд╕рдореЗрдВ рдпрд╣ рддрдереНрдп рд╢рд╛рдорд┐рд▓ рд╣реИ рдХрд┐ рд╣рдореЗрдВ рдХрдИ рд╕реНрдерд╛рдиреЛрдВ рдкрд░ рдЗрд╕ рдХреНрд░рд┐рдпрд╛ рдХреЛ рджреЛрд╣рд░рд╛рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛ рд╕рдХрддреА рд╣реИред рдпрджрд┐ рдЖрдкрдХреЛ рдХреЗрд╡рд▓ рдХрднреА-рдХрднреА рдРрд╕рд╛ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рддреЛ рд╕рдорд╕реНрдпрд╛ рдЗрддрдиреА рдЧрдВрднреАрд░ рдирд╣реАрдВ рд╣реИ, рд▓реЗрдХрд┐рди рдЕрдЧрд░ рдЖрдкрдХреЛ рдЕрдХреНрд╕рд░ рдЗрд╕рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИ, рддреЛ рдпрд╣ рдмрд╣реБрдд рдмреБрд░рд╛ рд╣реИред рдирддреАрдЬрддрди, рд╕рд░реНрд╡рд░ рдХреЗ рдкреНрд░рд╛рдкреНрдд рдбреЗрдЯрд╛ рдХреЛ рд╡реНрдпрд╡рд╕реНрдерд┐рдд рдХрд░рдиреЗ рдФрд░ рдЕрдиреБрдкреНрд░рдпреЛрдЧ рдореЗрдВ рдЙрдирдХрд╛ рдЙрдкрдпреЛрдЧ рдХреИрд╕реЗ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЗрд╕ рдмреЗрдореЗрд▓ рдХреЗ рдХрд╛рд░рдг рдЕрд╡рд╛рдВрдЫрдиреАрдп рдШрдЯрдирд╛рдПрдВ рд╣реЛрддреА рд╣реИрдВред

рджреВрд╕рд░реА рд╕рдорд╕реНрдпрд╛ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧ рдХрд┐рдП рдЧрдП рдХреЛрдб рдХреА рдЬрдЯрд┐рд▓рддрд╛ рд╣реИред рдореЗрд░рд╛ рдорд╛рдирдирд╛ тАЛтАЛрд╣реИ рдХрд┐ рдРрд╕рд╛ рдХреЛрдб рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП, рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ, рдЬрд┐рддрдирд╛ рд╕рдВрднрд╡ рд╣реЛ рдЙрддрдирд╛ рд╕рд░рд▓, рдФрд░ рджреВрд╕рд░рд╛ - рдЬрд┐рддрдирд╛ рд╕рдВрднрд╡ рд╣реЛ рдЙрддрдирд╛ рд╕реНрдкрд╖реНрдЯред рдЕрдзрд┐рдХ рдЖрдВрддрд░рд┐рдХ рдбреЗрдЯрд╛ рдкрд░рд┐рд╡рд░реНрддрдиреЛрдВ рдХреЛ рдЖрдкрдХреЛ рдХреНрд▓рд╛рдЗрдВрдЯ рдкрд░ рдХрд░рдирд╛ рдкрдбрд╝рддрд╛ рд╣реИ, рдЗрд╕рдХреА рдЬрдЯрд┐рд▓рддрд╛ рдЬрд┐рддрдиреА рдЕрдзрд┐рдХ рд╣реЛрддреА рд╣реИ, рдФрд░ рдЬрдЯрд┐рд▓ рдХреЛрдб рд╡рд╣ рд╕реНрдерд╛рди рд╣реЛрддрд╛ рд╣реИ рдЬрд╣рд╛рдВ рддреНрд░реБрдЯрд┐рдпрд╛рдВ рдЖрдорддреМрд░ рдкрд░ рдЫрд┐рдк рдЬрд╛рддреА рд╣реИрдВред

рддреАрд╕рд░рд╛ рдореБрджреНрджрд╛ рдбреЗрдЯрд╛ рдкреНрд░рдХрд╛рд░реЛрдВ рдХреА рдЪрд┐рдВрддрд╛ рдХрд░рддрд╛ рд╣реИред рдЙрдкрд░реЛрдХреНрдд рдХреЛрдб рд╕реНрдирд┐рдкреЗрдЯ рд╕реЗ, рдЖрдк рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рд╕рдВрджреЗрд╢ рдкрд╣рдЪрд╛рдирдХрд░реНрддрд╛ рд╕реНрдЯреНрд░рд┐рдВрдЧ рд╣реИрдВ, рдФрд░ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдкрд╣рдЪрд╛рдирдХрд░реНрддрд╛ рд╕рдВрдЦреНрдпрд╛ рд╣реИрдВред рддрдХрдиреАрдХреА рджреГрд╖реНрдЯрд┐рдХреЛрдг рд╕реЗ, рд╕рдм рдХреБрдЫ рдареАрдХ рд╣реИ, рд▓реЗрдХрд┐рди рдРрд╕реА рдЪреАрдЬреЗрдВ рдкреНрд░реЛрдЧреНрд░рд╛рдорд░ рдХреЛ рднреНрд░рдорд┐рдд рдХрд░ рд╕рдХрддреА рд╣реИрдВред рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рддрд╛рд░реАрдЦреЛрдВ рдХреА рдкреНрд░рд╕реНрддреБрддрд┐ рдХреЛ рджреЗрдЦреЗрдВ! рд▓реЗрдХрд┐рди рдкреНрд░реЛрдлрд╛рдЗрд▓ рдЫрд╡рд┐ рд╕реЗ рд╕рдВрдмрдВрдзрд┐рдд рдбреЗрдЯрд╛ рдХреЗ рд╣рд┐рд╕реНрд╕реЗ рдореЗрдВ рдЧрдбрд╝рдмрдбрд╝реА рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдХреНрдпрд╛? рд╕рдм рдХреЗ рдмрд╛рдж, рд╣рдо рд╕рднреА рдХреА рдЬрд░реВрд░рдд рд╣реИ рдПрдХ URL рд╣реИ рдЬреЛ рд╕рдВрдмрдВрдзрд┐рдд рдлрд╝рд╛рдЗрд▓ рдХреЗ рд▓рд┐рдП рдЕрдЧреНрд░рдгреА рд╣реИ, рдФрд░ рдРрд╕рд╛ рдХреБрдЫ рдирд╣реАрдВ рд╣реИ рдЬрд┐рд╕рдореЗрдВ рд╕реЗ рд╣рдореЗрдВ рдЗрд╕ URL рдХреЛ рд╕реНрд╡рдпрдВ рдмрдирд╛рдирд╛ рд╣реЛрдЧрд╛, рдиреЗрд╕реНрдЯреЗрдб рдбреЗрдЯрд╛ рд╕рдВрд░рдЪрдирд╛рдУрдВ рдХреЗ рдЬрдВрдЧрд▓ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗред

рдпрджрд┐ рд╣рдо рдЗрд╕ рдбреЗрдЯрд╛ рдХреЛ рд╕рдВрд╕рд╛рдзрд┐рдд рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рдЗрд╕реЗ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдХреЛрдб рдореЗрдВ рднреЗрдЬрддреЗ рд╣реИрдВ, рдлрд┐рд░, рдореЙрдбреНрдпреВрд▓ рдХрд╛ рд╡рд┐рд╢реНрд▓реЗрд╖рдг рдХрд░рддреЗ рд╣реБрдП, рд╣рдо рддреБрд░рдВрдд рд╕рдордЭ рдирд╣реАрдВ рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ рд╣рдо рд╡рд╣рд╛рдВ рдХреНрдпрд╛ рдХрд╛рдо рдХрд░ рд░рд╣реЗ рд╣реИрдВред рдЖрдВрддрд░рд┐рдХ рдбреЗрдЯрд╛ рд╕рдВрд░рдЪрдирд╛ рдФрд░ рдЗрд╕рдХреЗ рдкреНрд░рдХрд╛рд░ рдХреЛ рдкрд░рд┐рд╡рд░реНрддрд┐рдд рдХрд░рддреЗ рд╕рдордп рдЙрдирдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдирд╛ рдкреНрд░реЛрдЧреНрд░рд╛рдорд░ рдкрд░ рдПрдХ рдЕрддрд┐рд░рд┐рдХреНрдд рдмреЛрдЭ рдмрдирд╛рддрд╛ рд╣реИред рд▓реЗрдХрд┐рди рдЗрди рд╕рднреА рдХрдард┐рдирд╛рдЗрдпреЛрдВ рдХреЗ рдмрд┐рдирд╛ рдРрд╕рд╛ рдХрд░рдирд╛ рдХрд╛рдлреА рд╕рдВрднрд╡ рд╣реИред

рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ, рдПрдХ рд╡рд┐рдХрд▓реНрдк рдХреЗ рд░реВрдк рдореЗрдВ, рдЗрд╕ рд╕рдорд╕реНрдпрд╛ рдХреЛ рд╣рд▓ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рд╕реНрдерд┐рд░ рдкреНрд░рдХрд╛рд░ рдХреА рдкреНрд░рдгрд╛рд▓реА рдХреЛ рд▓рд╛рдЧреВ рдХрд░рдирд╛ рд╕рдВрднрд╡ рд╣реЛрдЧрд╛, рд▓реЗрдХрд┐рди рд╕рдЦреНрдд рдЯрд╛рдЗрдкрд┐рдВрдЧ рд╕рдХреНрд╖рдо рдирд╣реАрдВ рд╣реИ, рдХреЗрд╡рд▓ рдЗрд╕рдХреА рдЙрдкрд╕реНрдерд┐рддрд┐ рдХреЗ рддрдереНрдп рд╕реЗ, рдЦрд░рд╛рдм рдХреЛрдб рдХреЛ рдЕрдЪреНрдЫрд╛ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдПред

рдЕрдм рдЖрдк рдЬрд┐рд╕ рд╕рдорд╕реНрдпрд╛ рдХрд╛ рд╕рд╛рдордирд╛ рдХрд░ рд░рд╣реЗ рд╣реИрдВ рдЙрд╕рдХреА рдЧрдВрднреАрд░рддрд╛ рдХреЛ рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ, рдЖрдЗрдП рдЗрд╕реЗ рд╕реБрд▓рдЭрд╛рдиреЗ рдХреЗ рддрд░реАрдХреЛрдВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдмрд╛рдд рдХрд░рддреЗ рд╣реИрдВред

рд╕рдорд╛рдзрд╛рди # 1: рд╕рд░реНрд╡рд░ рдПрдкреАрдЖрдИ рдмрджрд▓ рд░рд╣рд╛ рд╣реИ


рдпрджрд┐ рдореМрдЬреВрджрд╛ рдПрдкреАрдЖрдИ рдХреЗ рдЕрд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рдЙрдкрдХрд░рдг рдХреЛ рдХреБрдЫ рдорд╣рддреНрд╡рдкреВрд░реНрдг рдХрд╛рд░рдгреЛрдВ рд╕реЗ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рддреЛ рдХреБрдЫ рднреА рдЖрдкрдХреЛ рдПрдХ рдирдпрд╛ рд╕рдВрд╕реНрдХрд░рдг рдмрдирд╛рдиреЗ рд╕реЗ рд░реЛрдХрддрд╛ рд╣реИ рдЬреЛ рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХреА рдЬрд░реВрд░рддреЛрдВ рдХреЛ рдмреЗрд╣рддрд░ рдврдВрдЧ рд╕реЗ рд╕реВрдЯ рдХрд░рддрд╛ рд╣реИ рдФрд░ рдЗрд╕ рдирдП рд╕рдВрд╕реНрдХрд░рдг рдХрд╛ рдкрддрд╛ рд▓рдЧрд╛рддрд╛ рд╣реИ, рдХрд╣рддреЗ рд╣реИрдВ, /v2 ред рд╢рд╛рдпрдж рдЗрд╕ рджреГрд╖реНрдЯрд┐рдХреЛрдг рдХреЛ рдЙрдкрд░реЛрдХреНрдд рд╕рдорд╕реНрдпрд╛рдУрдВ рдХрд╛ рд╕рдмрд╕реЗ рд╕рдлрд▓ рд╕рдорд╛рдзрд╛рди рдХрд╣рд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рдРрд╕реА рдкреНрд░рдгрд╛рд▓реА рдХреА рдпреЛрдЬрдирд╛ рдиреАрдЪреЗ рджрд┐рдП рдЧрдП рдЖрдВрдХрдбрд╝реЗ рдореЗрдВ рдкреНрд░рд╕реНрддреБрдд рдХреА рдЧрдИ рд╣реИ, рдбреЗрдЯрд╛ рд╕рдВрд░рдЪрдирд╛ рдЬреЛ рдХреНрд▓рд╛рдЗрдВрдЯ рдХреА рдЬрд░реВрд░рддреЛрдВ рд╕реЗ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдореЗрд▓ рдЦрд╛рддреА рд╣реИ, рд╣рд░реЗ рд░рдВрдЧ рдореЗрдВ рд╣рд╛рдЗрд▓рд╛рдЗрдЯ рдХреА рдЧрдИ рд╣реИред


рдирдпрд╛ рд╕рд░реНрд╡рд░ API рдЬреЛ рд╕рд┐рд╕реНрдЯрдо рдХреЗ рдХреНрд▓рд╛рдЗрдВрдЯ рдкрдХреНрд╖ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдХреЛ рдареАрдХ рд╕реЗ рдЙрддреНрдкрдиреНрди рдХрд░рддрд╛ рд╣реИ

рдПрдХ рдирдИ рдкрд░рд┐рдпреЛрдЬрдирд╛ рд╡рд┐рдХрд╕рд┐рдд рдХрд░рдирд╛ рд╢реБрд░реВ рдХрд░рдирд╛, рдЬрд┐рдирдореЗрдВ рд╕реЗ рдПрдкреАрдЖрдИ рд╡рд╛рдВрдЫрд┐рдд рд╣реЛрдиреЗ рдХреЗ рд▓рд┐рдП рдмрд╣реБрдд рдХреБрдЫ рдЫреЛрдбрд╝ рджреЗрддрд╛ рд╣реИ, рдореИрдВ рд╣рдореЗрд╢рд╛ рд╡рд░реНрдгрд┐рдд рджреГрд╖реНрдЯрд┐рдХреЛрдг рдХреЛ рд▓рд╛рдЧреВ рдХрд░рдиреЗ рдХреА рд╕рдВрднрд╛рд╡рдирд╛ рдореЗрдВ рджрд┐рд▓рдЪрд╕реНрдкреА рд░рдЦрддрд╛ рд╣реВрдВред рд╣рд╛рд▓рд╛рдВрдХрд┐, рдХрднреА-рдХрднреА рдПрдкреАрдЖрдИ рдбрд┐рд╡рд╛рдЗрд╕, рдЕрд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рд╣реЛрдиреЗ рдкрд░, рдХреБрдЫ рдорд╣рддреНрд╡рдкреВрд░реНрдг рд▓рдХреНрд╖реНрдп рд╣реЛрддреЗ рд╣реИрдВ, рдпрд╛ рд╕рд░реНрд╡рд░ рдПрдкреАрдЖрдИ рдХреЛ рдмрджрд▓рдирд╛ рд╕рдВрднрд╡ рдирд╣реАрдВ рд╣реИред рдЗрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ, рдореИрдВ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рджреГрд╖реНрдЯрд┐рдХреЛрдг рдХрд╛ рд╕рд╣рд╛рд░рд╛ рд▓реЗрддрд╛ рд╣реВрдВред

рд╕рдорд╛рдзрд╛рди # 2: BFF рдкреИрдЯрд░реНрди


рдпрд╣ рдПрдХ рдЕрдЪреНрдЫрд╛ рдкреБрд░рд╛рдирд╛ BFF ( рдмреИрдХрдПрдВрдб-рдлреЙрд░-рдж-рдлреНрд░рдВрдЯреЗрдВрдб ) рдкреИрдЯрд░реНрди рд╣реИред рдЗрд╕ рдкреИрдЯрд░реНрди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ, рдЖрдк рдЬрдЯрд┐рд▓ рд╕рд╛рд░реНрд╡рднреМрдорд┐рдХ REST рд╕рдорд╛рдкрди рдмрд┐рдВрджреБрдУрдВ рд╕реЗ рд╕рд╛рд░ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рд╕рд╛рдордиреЗ рд╡рд╛рд▓реЗ рдХреЛ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рд╡рд╣реА рджреЗ рд╕рдХрддреЗ рд╣реИрдВ рдЬрд┐рд╕рдХреА рдЙрд╕реЗ рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред рдпрд╣рд╛рдБ рдЗрд╕ рддрд░рд╣ рдХреЗ рдПрдХ рд╕рдорд╛рдзрд╛рди рдХрд╛ рдПрдХ рдпреЛрдЬрдирд╛рдмрджреНрдз рдкреНрд░рддрд┐рдирд┐рдзрд┐рддреНрд╡ рд╣реИред


BFF рдкреИрдЯрд░реНрди рд▓рд╛рдЧреВ рдХрд░рдирд╛

рдмреАрдПрдлрдПрдл рдкрд░рдд рдХреЗ рдЕрд╕реНрддрд┐рддреНрд╡ рдХрд╛ рдЕрд░реНрде рд╕реАрдорд╛рдВрдд рдХреА рдЬрд░реВрд░рддреЛрдВ рдХреЛ рдкреВрд░рд╛ рдХрд░рдирд╛ рд╣реИред рд╢рд╛рдпрдж рд╡рд╣ рдЕрддрд┐рд░рд┐рдХреНрдд REST рдПрдВрдбрдкреЙрдЗрдВрдЯ, рдпрд╛ рдЧреНрд░рд╛рдлрдХреЙрд▓ рд╕реЗрд╡рд╛рдУрдВ, рдпрд╛ рд╡реЗрдм рд╕реЙрдХреЗрдЯреНрд╕, рдпрд╛ рдХреБрдЫ рдФрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдЧрд╛ред рдЗрд╕рдХрд╛ рдореБрдЦреНрдп рд▓рдХреНрд╖реНрдп рдЕрдиреБрдкреНрд░рдпреЛрдЧ рдХреЗ рдЧреНрд░рд╛рд╣рдХ рдкрдХреНрд╖ рдХреА рд╕реБрд╡рд┐рдзрд╛ рдХреЗ рд▓рд┐рдП рд╣рд░ рд╕рдВрднрд╡ рдкреНрд░рдпрд╛рд╕ рдХрд░рдирд╛ рд╣реИред

рдореЗрд░рд╛ рдкрд╕рдВрджреАрджрд╛ рдЖрд░реНрдХрд┐рдЯреЗрдХреНрдЪрд░ NodeJS BFF рд╣реИ, рдЬрд┐рд╕рдХреЗ рдЙрдкрдпреЛрдЧ рд╕реЗ рдлреНрд░рдВрдЯ-рдПрдВрдб рдбреЗрд╡рд▓рдкрд░реНрд╕ рдХреНрдпрд╛ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдЙрдирдХреА рдЬрд░реВрд░рдд рд╣реИ, рдЬрд┐рд╕рд╕реЗ рд╡реЗ рдХреНрд▓рд╛рдЗрдВрдЯ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЗ рд▓рд┐рдП рд╢рд╛рдирджрд╛рд░ APIs рдмрдирд╛ рд╕рдХреЗрдВред рдЖрджрд░реНрд╢ рд░реВрдк рд╕реЗ, рд╕рдВрдмрдВрдзрд┐рдд рдХреЛрдб рд╕рд╛рдордиреЗ рдХреЗ рдЕрдВрдд рдХреЗ рдХреЛрдб рдХреЗ рд╕рдорд╛рди рд╣реА рд░рд┐рдкреЙрдЬрд┐рдЯрд░реА рдореЗрдВ рд╣реИ, рдЬреЛ рдХреЛрдб рд╕рд╛рдЭрд╛рдХрд░рдг рдХреЛ рд╕рд░рд▓ рдХрд░рддрд╛ рд╣реИ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рднреЗрдЬреЗ рдЧрдП рдбреЗрдЯрд╛ рдХреА рдЬрд╛рдБрдЪ рдХреЗ рд▓рд┐рдП, рдХреНрд▓рд╛рдЗрдВрдЯ рдФрд░ рд╕рд░реНрд╡рд░ рджреЛрдиреЛрдВ рдкрд░ред

рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдЗрд╕рдХрд╛ рдЕрд░реНрде рд╣реИ рдХрд┐ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЗ рдХреНрд▓рд╛рдЗрдВрдЯ рднрд╛рдЧ рдФрд░ рдЙрд╕рдХреЗ рд╕рд░реНрд╡рд░ API рдореЗрдВ рдкрд░рд┐рд╡рд░реНрддрди рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╡рд╛рд▓реЗ рдХрд╛рд░реНрдпреЛрдВ рдХреЛ рдПрдХ рд░рд┐рдкреЙрдЬрд┐рдЯрд░реА рдореЗрдВ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдПрдХ рддрд┐рдкрд╣рд┐рдпрд╛, рдЬреИрд╕рд╛ рдХрд┐ рд╡реЗ рдХрд╣рддреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдЕрдЪреНрдЫрд╛ рд╣реИред

рд╣рд╛рд▓рд╛рдБрдХрд┐, BFF рдХрд╛ рд╣рдореЗрд╢рд╛ рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рдФрд░ рдпрд╣ рддрдереНрдп рд╣рдореЗрдВ рдЦрд░рд╛рдм рд╕рд░реНрд╡рд░ рдПрдкреАрдЖрдИ рдХреЗ рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рдЙрдкрдпреЛрдЧ рдХреА рд╕рдорд╕реНрдпрд╛ рдХреЗ рд▓рд┐рдП рдПрдХ рдФрд░ рд╕рдорд╛рдзрд╛рди рдХреА рдУрд░ рд▓реЗ рдЬрд╛рддрд╛ рд╣реИред

рд╕рдорд╛рдзрд╛рди # 3: BIF рдкреИрдЯрд░реНрди


рдмреАрдЖрдИрдПрдл (рдмреИрдХрдПрдВрдб рдЗрди рдж рдлреНрд░рдВрдЯреЗрдВрдб) рдкреИрдЯрд░реНрди рдЙрд╕реА рддрд░реНрдХ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИ рдЬрд┐рд╕реЗ рдмреАрдПрдлрдПрдл (рдХрдИ рдПрдкреАрдЖрдИ рдФрд░ рдбреЗрдЯрд╛ рдХреНрд▓реАрдВрдЬрд┐рдВрдЧ рдХреЗ рд╕рдВрдпреЛрдЬрди) рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рд▓рд╛рдЧреВ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдпрд╣ рддрд░реНрдХ рдХреНрд▓рд╛рдЗрдВрдЯ рдХреА рдУрд░ рдЬрд╛рддрд╛ рд╣реИред рджрд░рдЕрд╕рд▓, рдпрд╣ рд╡рд┐рдЪрд╛рд░ рдирдпрд╛ рдирд╣реАрдВ рд╣реИ, рдпрд╣ рдмреАрд╕ рд╕рд╛рд▓ рдкрд╣рд▓реЗ рджреЗрдЦрд╛ рдЬрд╛ рд╕рдХрддрд╛ рдерд╛, рд▓реЗрдХрд┐рди рдЗрд╕ рддрд░рд╣ рдХреЗ рджреГрд╖реНрдЯрд┐рдХреЛрдг рд╕реЗ рдЦрд░рд╛рдм рд╕рдВрдЧрдард┐рдд рд╕рд░реНрд╡рд░ рдПрдкреАрдЖрдИ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдореЗрдВ рдорджрдж рдорд┐рд▓ рд╕рдХрддреА рд╣реИ, рдЗрд╕реАрд▓рд┐рдП рд╣рдо рдЗрд╕рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдмрд╛рдд рдХрд░ рд░рд╣реЗ рд╣реИрдВред рдпрд╣рд╛рдБ рд╣реИ рдХрд┐ рдпрд╣ рдХреИрд╕рд╛ рджрд┐рдЦрддрд╛ рд╣реИред


BIF рдкреИрдЯрд░реНрди рд▓рд╛рдЧреВ рдХрд░рдирд╛

тЦН рдмреАрдЖрдИрдПрдл рдХреНрдпрд╛ рд╣реИ?


рдЬреИрд╕рд╛ рдХрд┐ рдкрд┐рдЫрд▓реЗ рдЕрдиреБрднрд╛рдЧ рд╕реЗ рджреЗрдЦрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рдмреАрдЖрдИрдПрдл рдПрдХ рдкреИрдЯрд░реНрди рд╣реИ, рдЬреЛ рдХреЛрдб рдФрд░ рдЙрд╕рдХреЗ рд╕рдВрдЧрдарди рдХреЛ рд╕рдордЭрдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рджреГрд╖реНрдЯрд┐рдХреЛрдг рд╣реИред рдЗрд╕рдХреЗ рдЙрдкрдпреЛрдЧ рд╕реЗ рдкрд░рд┐рдпреЛрдЬрдирд╛ рд╕реЗ рдХрд┐рд╕реА рднреА рддрд░реНрдХ рдХреЛ рд╣рдЯрд╛рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИред рдпрд╣ рд╕рд┐рд░реНрдл рдПрдХ рдкреНрд░рдХрд╛рд░ (рдбреЗрдЯрд╛ рд╕рдВрд░рдЪрдирд╛рдУрдВ рдХреЗ рд╕рдВрд╢реЛрдзрди) рдХреЗ рддрд░реНрдХ рдХреЛ рджреВрд╕рд░реЗ рдкреНрд░рдХрд╛рд░ (рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдХреЗ рдЧрдарди) рдХреЗ рддрд░реНрдХ рд╕реЗ рдЕрд▓рдЧ рдХрд░рддрд╛ рд╣реИред рдпрд╣ "рдЬрд┐рдореНрдореЗрджрд╛рд░рд┐рдпреЛрдВ рдХреЛ рдЕрд▓рдЧ рдХрд░рдиреЗ" рдХреЗ рд╡рд┐рдЪрд╛рд░ рдХреЗ рд╕рдорд╛рди рд╣реИ, рдЬрд┐рд╕реЗ рд╣рд░ рдХреЛрдИ рд╕реБрди рд░рд╣рд╛ рд╣реИред

рдпрд╣рд╛рдБ рдореИрдВ рдпрд╣ рдиреЛрдЯ рдХрд░рдирд╛ рдЪрд╛рд╣реВрдБрдЧрд╛, рд╣рд╛рд▓рд╛рдБрдХрд┐ рдЗрд╕реЗ рдХреЛрдИ рдЖрдкрджрд╛ рдирд╣реАрдВ рдХрд╣рд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рдореБрдЭреЗ рдЕрдХреНрд╕рд░ рдЕрдирдкрдврд╝ рдмреАрдЖрдИрдПрдл рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдХреЛ рджреЗрдЦрдирд╛ рдкрдбрд╝рддрд╛ рдерд╛ред рдЗрд╕рд▓рд┐рдП, рдпрд╣ рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдХрдИ рд▓реЛрдЧ рдЗрд╕ рдкреИрдЯрд░реНрди рдХреЛ рд╕рд╣реА рдврдВрдЧ рд╕реЗ рд▓рд╛рдЧреВ рдХрд░рдиреЗ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдПрдХ рдХрд╣рд╛рдиреА рд╕реБрдирдиреЗ рдХреЗ рд▓рд┐рдП рдЗрдЪреНрдЫреБрдХ рд╣реЛрдВрдЧреЗред

BIF рдХреЛрдб рдХреЛ рдПрдХ рдХреЛрдб рдХреЗ рд░реВрдк рдореЗрдВ рдорд╛рдирд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП рдЬрд┐рд╕реЗ рдПрдХ рдмрд╛рд░ Node.js рд╕рд░реНрд╡рд░ рдкрд░ рд▓реЗ рдЬрд╛рдпрд╛ рдФрд░ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рдЬрд┐рд╕рдХреЗ рдмрд╛рдж рд╕рдм рдХреБрдЫ рдкрд╣рд▓реЗ рдХреА рддрд░рд╣ рд╣реА рдХрд╛рдо рдХрд░реЗрдЧрд╛ред рдпрд╛ рдпрд╣рд╛рдВ рддрдХ тАЛтАЛрдХрд┐ рдЗрд╕реЗ рдПрдХ рдирд┐рдЬреА рдПрдирдкреАрдПрдо рдкреИрдХреЗрдЬ рдореЗрдВ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХрд░реЗрдВ, рдЬрд┐рд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдПрдХ рдХрдВрдкрдиреА рдХреЗ рдврд╛рдВрдЪреЗ рдХреЗ рднреАрддрд░ рдХрдИ рдлреНрд░рдВрдЯ-рдПрдВрдб рдкрд░рд┐рдпреЛрдЬрдирд╛рдУрдВ рдореЗрдВ рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛, рдЬреЛ рдХрд┐ рдмрд╕ рдЖрд╢реНрдЪрд░реНрдпрдЬрдирдХ рд╣реИред

рдпрд╛рдж рд░рдЦреЗрдВ рдХрд┐ рд╣рдордиреЗ рдореБрдЦреНрдп рд╕рдорд╕реНрдпрд╛рдУрдВ рдХреЗ рдКрдкрд░ рдЪрд░реНрдЪрд╛ рдХреА рдереА рдЬреЛ рдПрдХ рдЕрд╕рдлрд▓ рд╕рд░реНрд╡рд░ рдПрдкреАрдЖрдИ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рддреЗ рд╕рдордп рдЙрддреНрдкрдиреНрди рд╣реЛрддреА рд╣реИрдВред рдЙрдирдореЗрдВ рд╕реЗ рдПрдкреАрдЖрдИ рдХреЗ рд▓рд┐рдП рдПрдХ рдмрд╣реБрдд рд▓рдЧрд╛рддрд╛рд░ рдХреЙрд▓ рд╣реИ рдФрд░ рддрдереНрдп рдпрд╣ рд╣реИ рдХрд┐ рдЙрдирдХреЗ рджреНрд╡рд╛рд░рд╛ рд▓реМрдЯрд╛рдП рдЧрдП рдбреЗрдЯрд╛ рдлреНрд░рдВрдЯрдПрдВрдб рдХреА рдЬрд░реВрд░рддреЛрдВ рдХреЛ рдкреВрд░рд╛ рдирд╣реАрдВ рдХрд░рддреЗ рд╣реИрдВред

рд╣рдо рдЗрди рд╕рдорд╕реНрдпрд╛рдУрдВ рдореЗрдВ рд╕реЗ рдкреНрд░рддреНрдпреЗрдХ рдХреЛ рдХреЛрдб рдХреЗ рдЕрд▓рдЧ-рдЕрд▓рдЧ рдмреНрд▓реЙрдХ рдореЗрдВ рд╣рд▓ рдХрд░реЗрдВрдЧреЗ, рдЬрд┐рдирдореЗрдВ рд╕реЗ рдкреНрд░рддреНрдпреЗрдХ рдХреЛ рдЕрдкрдиреА рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рд░рдЦрд╛ рдЬрд╛рдПрдЧрд╛ред рдирддреАрдЬрддрди, рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЗ рдХреНрд▓рд╛рдЗрдВрдЯ рднрд╛рдЧ рдХреА BIF рдкрд░рдд рдореЗрдВ рджреЛ рдлрд╛рдЗрд▓реЗрдВ рд╣реЛрдВрдЧреАред рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдПрдХ рдкрд░реАрдХреНрд╖рдг рдлрд╝рд╛рдЗрд▓ рдЙрдирд╕реЗ рдЬреБрдбрд╝реА рд╣реЛрдЧреАред

Ining рдПрдкреАрдЖрдИ рдХреЙрд▓ рдХрд╛ рд╕рдВрдпреЛрдЬрди


рд╣рдорд╛рд░реЗ рдХреНрд▓рд╛рдЗрдВрдЯ рдХреЛрдб рдореЗрдВ рд╕рд░реНрд╡рд░ рдПрдкреАрдЖрдИ рдХреЗ рд▓рд┐рдП рдмрд╣реБрдд рд╕рд╛рд░реА рдХреЙрд▓ рдХрд░рдирд╛ рдЗрддрдиреА рдЧрдВрднреАрд░ рд╕рдорд╕реНрдпрд╛ рдирд╣реАрдВ рд╣реИред рд╣рд╛рд▓рд╛рдБрдХрд┐, рдореИрдВ рдЗрд╕реЗ рдЕрдореВрд░реНрдд рдХрд░рдирд╛ рдЪрд╛рд╣реВрдВрдЧрд╛, рддрд╛рдХрд┐ рдПрдХ "рдЕрдиреБрд░реЛрдз" (рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЛрдб рд╕реЗ BIF рд▓реЗрдпрд░ рддрдХ) рдХреЛ рдкреВрд░рд╛ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХреЗ, рдФрд░ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдореЗрдВ рдЬреЛ рдЖрд╡рд╢реНрдпрдХ рд╣реЛ, рдкреНрд░рд╛рдкреНрдд рдХрд░реЗрдВред

рдмреЗрд╢рдХ, рд╣рдорд╛рд░реЗ рдорд╛рдорд▓реЗ рдореЗрдВ, рд╕рд░реНрд╡рд░ рд╕реЗ рддреАрди HTTP рдЕрдиреБрд░реЛрдз рдХрд░рдиреЗ рд╕реЗ рдХреЛрдИ рдмрдЪ рдирд╣реАрдВ рд╕рдХрддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЛ рдЗрд╕рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЬрд╛рдирдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИред

рдореЗрд░реЗ BIF рд▓реЗрдпрд░ рдХреЗ API рдХреЛ рдлрд╝рдВрдХреНрд╢рдВрд╕ рдХреЗ рд░реВрдк рдореЗрдВ рджрд░реНрд╢рд╛рдпрд╛ рдЧрдпрд╛ рд╣реИред рдЗрд╕рд▓рд┐рдП, рдЬрдм рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЛ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдХреБрдЫ рдбреЗрдЯрд╛ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИ, рддреЛ рд╡рд╣ getUser() рдлрд╝рдВрдХреНрд╢рди рдХреЛ рдХреЙрд▓ рдХрд░реЗрдЧрд╛, рдЬреЛ рдЗрд╕ рдбреЗрдЯрд╛ рдХреЛ рдЗрд╕реЗ рд╡рд╛рдкрд╕ рдХрд░ рджреЗрдЧрд╛ред рдпрд╣рд╛рдВ рджреЗрдЦреЗрдВ рдХрд┐ рдпрд╣ рдлрд╝рдВрдХреНрд╢рди рдХреИрд╕рд╛ рд╣реИ:

 import parseUserData from './parseUserData'; import fetchJson from './fetchJson'; export const getUser = async () => { const auth = await fetchJson('/auth'); const [ profile, notifications ] = await Promise.all([   fetchJson(`/profile/${auth.userId}`, auth.jwt),   fetchJson(`/notifications/${auth.userId}`, auth.jwt), ]); return parseUserData(auth, profile, notifications); }; 

рдпрд╣рд╛рдВ, рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ, рдПрдХ рдЯреЛрдХрди рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдкреНрд░рдорд╛рдгреАрдХрд░рдг рд╕реЗрд╡рд╛ рд╕реЗ рдЕрдиреБрд░реЛрдз рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЬрд┐рд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЛ рдЕрдзрд┐рдХреГрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ (рд╣рдо рдпрд╣рд╛рдВ рдкреНрд░рдорд╛рдгреАрдХрд░рдг рддрдВрддреНрд░ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдмрд╛рдд рдирд╣реАрдВ рдХрд░реЗрдВрдЧреЗ, рдлрд┐рд░ рднреА рд╣рдорд╛рд░рд╛ рдореБрдЦреНрдп рд▓рдХреНрд╖реНрдп рдмреАрдЖрдИрдПрдл рд╣реИ)ред

рдЯреЛрдХрди рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж, рдЖрдк рдПрдХ рд╕рд╛рде рджреЛ рдЕрдиреБрд░реЛрдзреЛрдВ рдХреЛ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдЬреЛ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдкреНрд░реЛрдлрд╝рд╛рдЗрд▓ рдбреЗрдЯрд╛ рдкреНрд░рд╛рдкреНрдд рдХрд░рддреЗ рд╣реИрдВ рдФрд░ рдЕрдкрдард┐рдд рд╕реВрдЪрдирд╛рдУрдВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЬрд╛рдирдХрд╛рд░реА рдкреНрд░рд╛рдкреНрдд рдХрд░рддреЗ рд╣реИрдВред

рд╡реИрд╕реЗ, рдпрд╣ рджреЗрдЦреЗрдВ рдХрд┐ async/await рдХрдВрд╕реНрдЯреНрд░рдХреНрд╢рди рдХрд┐рддрдирд╛ рд╕реБрдВрджрд░ рд▓рдЧрддрд╛ рд╣реИ рдЬрдм рдЗрд╕рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рддреЗ рд╕рдордп Promise.all рдФрд░ рд╡рд┐рдирд╛рд╢рдХрд╛рд░реА рдЕрд╕рд╛рдЗрдирдореЗрдВрдЯ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред

рддреЛ, рдпрд╣ рдкрд╣рд▓рд╛ рдХрджрдо рдерд╛, рдпрд╣рд╛рдВ рд╣рдордиреЗ рдЗрд╕ рддрдереНрдп рд╕реЗ рд╕рд╛рд░ рдХрд┐рдпрд╛ рдХрд┐ рд╕рд░реНрд╡рд░ рддрдХ рдкрд╣реБрдВрдЪ рдореЗрдВ рддреАрди рдЕрдиреБрд░реЛрдз рд╢рд╛рдорд┐рд▓ рд╣реИрдВред рд╣рд╛рд▓рд╛рдВрдХрд┐, рдХреЗрд╕ рдЕрднреА рддрдХ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред рдЕрд░реНрдерд╛рддреН, parseUserData() рдлрд╝рдВрдХреНрд╢рди рдкрд░ рдХреЙрд▓ рдкрд░ рдзреНрдпрд╛рди рджреЗрдВ, рдЬреЛ, рдЬреИрд╕рд╛ рдХрд┐ рдЖрдк рдЗрд╕рдХреЗ рдирд╛рдо рд╕реЗ рдиреНрдпрд╛рдп рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рд╕рд░реНрд╡рд░ рд╕реЗ рдкреНрд░рд╛рдкреНрдд рдбреЗрдЯрд╛ рдХреЛ parseUserData() ред рдЖрдЗрдП рдЙрд╕рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдмрд╛рдд рдХрд░рддреЗ рд╣реИрдВред

тЦН рдбреЗрдЯрд╛ рдХреА рд╕рдлрд╛рдИ


рдореИрдВ рддреБрд░рдВрдд рдПрдХ рд╕рд┐рдлрд╛рд░рд┐рд╢ рджреЗрдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВ, рдЬреЛ, рдореЗрд░рд╛ рдорд╛рдирдирд╛ тАЛтАЛрд╣реИ рдХрд┐ рдПрдХ рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХреЛ рдЧрдВрднреАрд░рддрд╛ рд╕реЗ рдкреНрд░рднрд╛рд╡рд┐рдд рдХрд░ рд╕рдХрддрд╛ рд╣реИ, рдЬрд┐рд╕рдореЗрдВ рдкрд╣рд▓реЗ рдПрдХ рдмреАрдЖрдИрдПрдл рдкрд░рдд рдирд╣реАрдВ рдереА, рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ, рдПрдХ рдирдИ рдкрд░рд┐рдпреЛрдЬрдирд╛ред рдХреБрдЫ рд╕рдордп рдХреЗ рд▓рд┐рдП рд╕рд░реНрд╡рд░ рд╕реЗ рдЖрдкрдХреЛ рдХреНрдпрд╛ рдорд┐рд▓реЗрдЧрд╛, рдЗрд╕рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рди рд╕реЛрдЪрдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░реЗрдВред рдЗрд╕рдХреЗ рдмрдЬрд╛рдп, рдЗрд╕ рдмрд╛рдд рдкрд░ рдзреНрдпрд╛рди рджреЗрдВ рдХрд┐ рдЖрдкрдХреЗ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЛ рдХрд┐рди рдбреЗрдЯрд╛ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред

рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, 2021 рд╕реЗ рд╕рдВрдмрдВрдзрд┐рдд, рднрд╡рд┐рд╖реНрдп рдХреА рдЬрд░реВрд░рддреЛрдВ рдХреЛ рдзреНрдпрд╛рди рдореЗрдВ рд░рдЦрддреЗ рд╣реБрдП, рдЖрд╡реЗрджрди рдХреЛ рдбрд┐рдЬрд╛рдЗрди рдХрд░рддреЗ рд╕рдордп, рдХреЛрд╢рд┐рд╢ рдХрд░рдирд╛ рд╕рдмрд╕реЗ рдЕрдЪреНрдЫрд╛ рд╣реИред рдмрд╕ рдЖрд╡реЗрджрди рдХреЛ рд╡реИрд╕рд╛ рд╣реА рдмрдирд╛рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░реЗрдВ рдЬреИрд╕рд╛ рдЖрдЬ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред рддрдереНрдп рдпрд╣ рд╣реИ рдХрд┐ рднрд╡рд┐рд╖реНрдп рдХреА рднрд╡рд┐рд╖реНрдпрд╡рд╛рдгреА рдХрд░рдиреЗ рдХреА рдпреЛрдЬрдирд╛ рдФрд░ рдкреНрд░рдпрд╛рд╕реЛрдВ рдХреЗ рд▓рд┐рдП рдЕрддреНрдпрдзрд┐рдХ рдЙрддреНрд╕рд╛рд╣ рд╕реЙрдлреНрдЯрд╡реЗрдпрд░ рдкрд░рд┐рдпреЛрдЬрдирд╛рдУрдВ рдХреА рдЕрдиреБрдЪрд┐рдд рдЬрдЯрд┐рд▓рддрд╛ рдХрд╛ рдореБрдЦреНрдп рдХрд╛рд░рдг рд╣реИред

рддреЛ, рд╡рд╛рдкрд╕ рд╣рдорд╛рд░реЗ рд╡реНрдпрд╡рд╕рд╛рдп рдХреЗ рд▓рд┐рдПред рдЕрдм рд╣рдо рдЬрд╛рдирддреЗ рд╣реИрдВ рдХрд┐ рддреАрди рд╕рд░реНрд╡рд░ рдПрдкреАрдЖрдИ рд╕реЗ рдкреНрд░рд╛рдкреНрдд рдбреЗрдЯрд╛ рдХреИрд╕рд╛ рджрд┐рдЦрддрд╛ рд╣реИ, рдФрд░ рд╣рдо рдЬрд╛рдирддреЗ рд╣реИрдВ рдХрд┐ рд╡рд┐рд╢реНрд▓реЗрд╖рдг рдХреЗ рдмрд╛рдж рдЙрдиреНрд╣реЗрдВ рдХреНрдпрд╛ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдПред

рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдпрд╣рд╛рдВ рдЙрди рджреБрд░реНрд▓рдн рдорд╛рдорд▓реЛрдВ рдореЗрдВ рд╕реЗ рдПрдХ рд╣реИ рдЬрдм рдЯреАрдбреАрдбреА рдХрд╛ рдЙрдкрдпреЛрдЧ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рд╕рдордЭ рдореЗрдВ рдЖрддрд╛ рд╣реИред рдЗрд╕рд▓рд┐рдП, рд╣рдо parseUserData() рдлрд╝рдВрдХреНрд╢рди рдХреЗ рд▓рд┐рдП рдПрдХ рдмрдбрд╝рд╛ рд▓рдВрдмрд╛ рдкрд░реАрдХреНрд╖рдг parseUserData() :

 import parseUserData from './parseUserData'; it('should parse the data', () => { const authApiData = {   userId: 1234,   jwt: 'the jwt', }; const profileApiData = {   Profiles: [     {       id: 1234,       Christian_Name: 'David',       Surname: 'Gilbertson',       Photographs: [         {           Size: 'Medium',           URLS: [             '/images/david.png',           ],         },       ],       Last_Login: '2018-01-01'     },   ], }; const notificationsApiData = {   data: {     'msg-1234': {       timestamp: '1529739612',       user: {         Christian_Name: 'Alice',         Surname: 'Guthbertson',         Enhanced: 'True',         Photographs: [           {             Size: 'Medium',             URLS: [               '/images/alice.png'             ]           }         ]       },       message_summary: 'Hey I like your hair, it re',       message: 'Hey I like your hair, it really goes nice with your eyes'     },     'msg-5678': {       timestamp: '1529731234',       user: {         Christian_Name: 'Bob',         Surname: 'Smelthsen',       },       message_summary: 'I\'m launching my own cryptocu',       message: 'I\'m launching my own cryptocurrency soon and many thanks for you to look at and talk about'     },   }, }; const parsedData = parseUserData(authApiData, profileApiData, notificationsApiData); expect(parsedData).toEqual({   jwt: 'the jwt',   id: '1234',   name: 'David Gilbertson',   photoUrl: '/images/david.png',   notifications: [     {       id: 'msg-1234',       dateTime: expect.any(Date),       name: 'Alice Guthbertson',       premiumMember: true,       photoUrl: '/images/alice.png',       message: 'Hey I like your hair, it really goes nice with your eyes'     },     {       id: 'msg-5678',       dateTime: expect.any(Date),       name: 'Bob Smelthsen',       premiumMember: false,       photoUrl: '/images/placeholder.jpg',       message: 'I\'m launching my own cryptocurrency soon and many thanks for you to look at and talk about'     },   ], }); }); 

рдФрд░ рдпрд╣рд╛рдБ рдлрд╝рдВрдХреНрд╢рди рдХрд╛ рдХреЛрдб рд╣реА рд╣реИ:

 const getPhotoFromProfile = profile => { try {   return profile.Photographs[0].URLS[0]; } catch (err) {   return '/images/placeholder.jpg'; //   } }; const getFullNameFromProfile = profile => `${profile.Christian_Name} ${profile.Surname}`; export default function parseUserData(authApiData, profileApiData, notificationsApiData) { const profile = profileApiData.Profiles[0]; const result = {   jwt: authApiData.jwt,   id: authApiData.userId.toString(), // ID        name: getFullNameFromProfile(profile),   photoUrl: getPhotoFromProfile(profile),   notifications: [], //      ,     }; Object.entries(notificationsApiData.data).forEach(([id, notification]) => {   result.notifications.push({     id,     dateTime: new Date(Number(notification.timestamp) * 1000), // ,   ,   ,     Unix,         name: getFullNameFromProfile(notification.user),     photoUrl: getPhotoFromProfile(notification.user),     message: notification.message,     premiumMember: notification.user.Enhanced === 'True',   }) }); return result; } 

рдореИрдВ рдпрд╣ рдиреЛрдЯ рдХрд░рдирд╛ рдЪрд╛рд╣реВрдВрдЧрд╛ рдХрд┐ рдЬрдм рдкреВрд░реЗ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдореЗрдВ рдЗрд╕ рд╕реЗ рдкрд╣рд▓реЗ рдмрд┐рдЦрд░реЗ рд╣реБрдП рдбреЗрдЯрд╛ рдХреЛ рд╕рдВрд╢реЛрдзрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЬрд┐рдореНрдореЗрджрд╛рд░ рдХреЛрдб рдХреА рджреЛ рд╕реМ рд▓рд╛рдЗрдиреЛрдВ рдХреЛ рдПрдХ рдЬрдЧрд╣ рдЗрдХрдЯреНрдард╛ рдХрд░рдирд╛ рд╕рдВрднрд╡ рд╣реИ, рддреЛ рдпрд╣ рдПрдХ рдЕрджреНрднреБрдд рднрд╛рд╡рдирд╛ рдХрд╛ рдХрд╛рд░рдг рдмрдирддрд╛ рд╣реИред рдЕрдм рдпрд╣ рд╕рдм рдПрдХ рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рд╣реИ, рдЗрд╕ рдХреЛрдб рдХреЗ рд▓рд┐рдП рдпреВрдирд┐рдЯ рдЯреЗрд╕реНрдЯ рд▓рд┐рдЦреЗ рдЧрдП рд╣реИрдВ, рдФрд░ рд╕рднреА рдЕрд╕реНрдкрд╖реНрдЯ рдХреНрд╖рдгреЛрдВ рдХреЛ рдЯрд┐рдкреНрдкрдгрд┐рдпреЛрдВ рдХреЗ рд╕рд╛рде рдкреНрд░рджрд╛рди рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред

рдореИрдВрдиреЗ рдкрд╣рд▓реЗ рдХрд╣рд╛ рдерд╛ рдХрд┐ рдбреЗрдЯрд╛ рдХреЗ рд╕рдВрдпреЛрдЬрди рдФрд░ рд╕рдорд╛рд╢реЛрдзрди рдХреЗ рд▓рд┐рдП BFF рдореЗрд░рд╛ рдкрд╕рдВрджреАрджрд╛ рджреГрд╖реНрдЯрд┐рдХреЛрдг рд╣реИ, рд▓реЗрдХрд┐рди рдПрдХ рдРрд╕рд╛ рдХреНрд╖реЗрддреНрд░ рд╣реИ рдЬрд┐рд╕рдореЗрдВ BIF BFF рд╕реЗ рдмреЗрд╣рддрд░ рд╣реИред рдЕрд░реНрдерд╛рддреН, рд╕рд░реНрд╡рд░ рд╕реЗ рдкреНрд░рд╛рдкреНрдд рдбреЗрдЯрд╛ рдореЗрдВ рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдСрдмреНрдЬреЗрдХреНрдЯ рд╢рд╛рдорд┐рд▓ рд╣реЛ рд╕рдХрддреЗ рд╣реИрдВ рдЬреЛ JSON рдХрд╛ рд╕рдорд░реНрдерди рдирд╣реАрдВ рдХрд░рддреЗ рд╣реИрдВ, рдЬреИрд╕реЗ Date рдпрд╛ Map рдСрдмреНрдЬреЗрдХреНрдЯ (рд╢рд╛рдпрдж рдпрд╣ рд╕рдмрд╕реЗ рдЕрдзрд┐рдХ рдЕрдкреНрд░рдпреБрдХреНрдд рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рд╕реБрд╡рд┐рдзрд╛рдУрдВ рдореЗрдВ рд╕реЗ рдПрдХ рд╣реИ)ред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рд╣рдорд╛рд░реЗ рдорд╛рдорд▓реЗ рдореЗрдВ, рд╣рдореЗрдВ рдЙрд╕ рддрд╛рд░реАрдЦ рдХреЛ рд░реВрдкрд╛рдВрддрд░рд┐рдд рдХрд░рдирд╛ рд╣реЛрдЧрд╛ рдЬреЛ рд╕рд░реНрд╡рд░ рд╕реЗ рдЖрдИ рдереА (рд╕реЗрдХрдВрдб рдореЗрдВ рд╡реНрдпрдХреНрдд рдХреА рдЧрдИ, рдорд┐рд▓реАрд╕реЗрдХрдВрдб рдирд╣реАрдВ) рдПрдХ Date рдЬреЗрдПрд╕ рдСрдмреНрдЬреЗрдХреНрдЯ рдореЗрдВред

рдкрд░рд┐рдгрд╛рдо


рдЕрдЧрд░ рдЖрдкрдХреЛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЖрдкрдХреЗ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдореЗрдВ рдХреБрдЫ рдРрд╕рд╛ рд╣реИ рдЬрд┐рд╕рдореЗрдВ рд╣рдордиреЗ рдЕрд╕рдлрд▓ API рдХреА рд╕рдорд╕реНрдпрд╛рдУрдВ рдХреА рдЬрд╛рдВрдЪ рдХреА рд╣реИ, рддреЛ рдХреНрд▓рд╛рдЗрдВрдЯ рдкрд░ рд╕рд░реНрд╡рд░ рд╕реЗ рдбреЗрдЯрд╛ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЕрдкрдиреЗ рдЖрдк рд╕реЗ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдкреНрд░рд╢реНрди рдкреВрдЫрдХрд░ рдЗрд╕рдХреЗ рдХреЛрдб рдХрд╛ рд╡рд┐рд╢реНрд▓реЗрд╖рдг рдХрд░реЗрдВ:

  • рдХреНрдпрд╛ рдЖрдкрдХреЛ рдЙрди рдЧреБрдгреЛрдВ рдХреЛ рд╕рдВрдпреЛрдЬрд┐рдд рдХрд░рдирд╛ рд╣реЛрдЧрд╛ рдЬреЛ рдХрднреА рднреА рдЕрд▓рдЧ рд╕реЗ рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ рдХрд┐рдП рдЬрд╛рддреЗ рд╣реИрдВ (рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХрд╛ рдкрд╣рд▓рд╛ рдФрд░ рдЕрдВрддрд┐рдо рдирд╛рдо)?
  • рдХреНрдпрд╛ JS рдХреЛрдб рдХреЛ рд╕рдВрдкрддреНрддрд┐ рдХреЗ рдирд╛рдо рдХреЗ рд╕рд╛рде рдорд┐рд▓рдХрд░ рдХрд╛рдо рдХрд░рдирд╛ рдкрдбрд╝рддрд╛ рд╣реИ рдЬреЛ JS (PascalCase рдХреА рддрд░рд╣) рдореЗрдВ рд╕реНрд╡реАрдХрд╛рд░ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ?
  • рд╡рд┐рднрд┐рдиреНрди рдкрд╣рдЪрд╛рдирдХрд░реНрддрд╛рдУрдВ рдХреЗ рдбреЗрдЯрд╛ рдкреНрд░рдХрд╛рд░ рдХреНрдпрд╛ рд╣реИрдВ? рд╢рд╛рдпрдж рдХрднреА рдпреЗ рддрд╛рд░ рд╣реЛрддреЗ рд╣реИрдВ, рдХрднреА рд╕рдВрдЦреНрдпрд╛?
  • рдЖрдкрдХреА рдкрд░рд┐рдпреЛрдЬрдирд╛ рдореЗрдВ рддрд╛рд░реАрдЦреЗрдВ рдХреИрд╕реЗ рдкреНрд░рд╕реНрддреБрдд рдХреА рдЬрд╛рддреА рд╣реИрдВ? рд╣реЛ рд╕рдХрддрд╛ рд╣реИ рдХрд┐ рдХрднреА-рдХрднреА рдпреЗ Date рдЬреЗрдПрд╕ рдСрдмреНрдЬреЗрдХреНрдЯ рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдореЗрдВ рдЙрдкрдпреЛрдЧ рдХреЗ рд▓рд┐рдП рддреИрдпрд╛рд░ рд╣реЛрддреЗ рд╣реИрдВ, рдФрд░ рдХрднреА-рдХрднреА рд╕рдВрдЦреНрдпрд╛ рдпрд╛ рддрд╛рд░ рднреА рд╣реЛрддреЗ рд╣реИрдВ?
  • рдХреНрдпрд╛ рдЖрдкрдХреЛ рдЕрдХреНрд╕рд░ рдЙрдирдХреЗ рдЕрд╕реНрддрд┐рддреНрд╡ рдХреЗ рд▓рд┐рдП рд╕рдВрдкрддреНрддрд┐рдпреЛрдВ рдХреА рдЬрд╛рдВрдЪ рдХрд░рдиреА рд╣реЛрддреА рд╣реИ, рдпрд╛ рдЬрд╛рдБрдЪрдирд╛ рдЪрд╛рд╣рд┐рдП рдХрд┐ рдХреНрдпрд╛ рдХреЛрдИ рдЗрдХрд╛рдИ рдПрдХ рд╕рд░рдгреА рд╣реИ рдЗрд╕рд╕реЗ рдкрд╣рд▓реЗ рдХрд┐ рдЖрдк рдЗрд╕ рдЗрдХрд╛рдИ рдХреЗ рддрддреНрд╡реЛрдВ рдХреЛ рдЙрд╕рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдХреЗ рдХреБрдЫ рдЯреБрдХрдбрд╝реЗ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдЧрдгрдирд╛ рдХрд░рдирд╛ рд╢реБрд░реВ рдХрд░реЗрдВ? рдХреНрдпрд╛ рдпрд╣ рд╣реЛ рд╕рдХрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рдЗрдХрд╛рдИ рдПрдХ рд╕рд░рдгреА рдирд╣реАрдВ рд╣реЛрдЧреА, рднрд▓реЗ рд╣реА рдЦрд╛рд▓реА рд╣реЛ?
  • рдХреНрдпрд╛ рдЖрдкрдХреЛ рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдмрдирд╛рддреЗ рд╕рдордп рд╕рд░рдгрд┐рдпреЛрдВ рдХреЛ рд╕реЙрд░реНрдЯ рдпрд╛ рдлрд╝рд┐рд▓реНрдЯрд░ рдХрд░рдирд╛ рд╣реЛрдЧрд╛, рдЬреЛ рдХрд┐, рдЖрджрд░реНрд╢ рд░реВрдк рд╕реЗ, рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рд╕рд╣реА рдврдВрдЧ рд╕реЗ рд╕реЙрд░реНрдЯ рдФрд░ рдлрд╝рд┐рд▓реНрдЯрд░ рдХрд┐рдП рдЬрд╛рдиреЗ рдЪрд╛рд╣рд┐рдП?
  • рдпрджрд┐ рдпрд╣ рдкрддрд╛ рдЪрд▓рд╛ рд╣реИ рдХрд┐, рдЕрдкрдиреЗ рдЕрд╕реНрддрд┐рддреНрд╡ рдХреЗ рд▓рд┐рдП рдЧреБрдгреЛрдВ рдХреА рдЬрд╛рдВрдЪ рдХрд░рддреЗ рд╕рдордп, рдХреЛрдИ рдЧреБрдг рдирд╣реАрдВ рдорд╛рдВрдЧреЗ рдЧрдП рд╣реИрдВ, рддреЛ рдХреНрдпрд╛ рдЖрдкрдХреЛ рдХреБрдЫ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рдорд╛рдиреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕реНрд╡рд┐рдЪ рдХрд░рдирд╛ рд╣реЛрдЧрд╛ (рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдорд╛рдирдХ рддрд╕реНрд╡реАрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВ рдЬрдм рд╕рд░реНрд╡рд░ рд╕реЗ рдкреНрд░рд╛рдкреНрдд рдбреЗрдЯрд╛ рдореЗрдВ рдХреЛрдИ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдлреЛрдЯреЛ рдирд╣реАрдВ рд╣реИ)?
  • рдХреНрдпрд╛ рдЧреБрдг рд╕рдорд╛рди рд░реВрдк рд╕реЗ рдирд╛рдорд┐рдд рд╣реИрдВ? рдХреНрдпрд╛ рдРрд╕рд╛ рд╣реЛрддрд╛ рд╣реИ рдХрд┐ рдПрдХ рд╣реА рдЗрдХрд╛рдИ рдХреЗ рдЕрд▓рдЧ-рдЕрд▓рдЧ рдирд╛рдо рд╣реЛ рд╕рдХрддреЗ рд╣реИрдВ, рдЬреЛ рд╕рдВрднрд╡рддрдГ, рдЕрдкреЗрдХреНрд╖рд╛рдХреГрдд рдкреБрд░рд╛рдиреЗ, "рдкреБрд░рд╛рдиреЗ" рдФрд░ "рдирдП" рд╕рд░реНрд╡рд░ рдПрдкреАрдЖрдИ рдХреЗ рд╕рдВрдпреБрдХреНрдд рдЙрдкрдпреЛрдЧ рдХреЗ рдХрд╛рд░рдг рд╣реЛрддрд╛ рд╣реИ?
  • рдХреНрдпрд╛ рдЖрдкрдХреЛ рдЙрдкрдпреЛрдЧреА рдбреЗрдЯрд╛ рдХреЗ рд╕рд╛рде, рдХрд╣реАрдВ рдбреЗрдЯрд╛ рдХрд╛ рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ рдХрд░рдирд╛ рд╣реИ, рдЬреЛ рдХреЗрд╡рд▓ рдЗрд╕рд▓рд┐рдП рдХрд░ рд░рд╣рд╛ рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ рд╕рд░реНрд╡рд░ рдПрдкреАрдЖрдИ рд╕реЗ рдЖрддрд╛ рд╣реИ? рдХреНрдпрд╛ рдпрд╣ рдЕрдкреНрд░рдпреБрдХреНрдд рдбреЗрдЯрд╛ рдбрд┐рдмрдЧрд┐рдВрдЧ рдореЗрдВ рд╣рд╕реНрддрдХреНрд╖реЗрдк рдХрд░рддрд╛ рд╣реИ?

рдпрджрд┐ рдЖрдк рдЗрд╕ рд╕реВрдЪреА рдореЗрдВ рд╕реЗ рдПрдХ рдпрд╛ рджреЛ рдкреНрд░рд╢реНрдиреЛрдВ рдХрд╛ рдЙрддреНрддрд░ рд╕рдХрд╛рд░рд╛рддреНрдордХ рд░реВрдк рд╕реЗ рджреЗ рд╕рдХрддреЗ рд╣реИрдВ, рддреЛ рд╢рд╛рдпрдж рдЖрдкрдХреЛ рдХрд┐рд╕реА рдРрд╕реА рдЪреАрдЬрд╝ рдХреА рдорд░рдореНрдордд рдирд╣реАрдВ рдХрд░рдиреА рдЪрд╛рд╣рд┐рдП рдЬреЛ рдкрд╣рд▓реЗ рд╕реЗ рдареАрдХ рд╕реЗ рдХрд╛рдо рдХрд░рддреА рд╣реЛред

рд╣рд╛рд▓рд╛рдБрдХрд┐, рдпрджрд┐ рдЖрдк рдЗрди рдкреНрд░рд╢реНрдиреЛрдВ рдХреЛ рдкрдврд╝ рд░рд╣реЗ рд╣реИрдВ, рддреЛ рдЙрдирдореЗрдВ рд╕реЗ рдкреНрд░рддреНрдпреЗрдХ рдореЗрдВ рдЕрдкрдиреА рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХреА рд╕рдорд╕реНрдпрд╛рдУрдВ рдХрд╛ рдкрддрд╛ рд▓рдЧрд╛рдПрдБ, рдпрджрд┐ рдЖрдкрдХреЗ рдХреЛрдб рдХрд╛ рдЙрдкрдХрд░рдг рдЗрд╕ рд╕рдм рдХреЗ рдХрд╛рд░рдг рдЕрдирд╛рд╡рд╢реНрдпрдХ рд░реВрдк рд╕реЗ рдЬрдЯрд┐рд▓ рд╣реИ, рдЕрдЧрд░ рдпрд╣ рджреЗрдЦрдирд╛ рдФрд░ рдкрд░реАрдХреНрд╖рдг рдХрд░рдирд╛ рдХрдард┐рди рд╣реИ, рдпрджрд┐ рдЗрд╕рдореЗрдВ рдРрд╕реА рддреНрд░реБрдЯрд┐рдпрд╛рдВ рд╣реИрдВ, рдЬрд┐рдирдХрд╛ рдкрддрд╛ рд▓рдЧрд╛рдирд╛ рдореБрд╢реНрдХрд┐рд▓ рд╣реИ, рддреЛ BIF рдкреИрдЯрд░реНрди рджреЗрдЦреЗрдВред

рдЕрдВрдд рдореЗрдВ, рдореИрдВ рдХрд╣рдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВ рдХрд┐ рдЬрдм рдмреАрдЖрдИрдПрдл рдкрд░рдд рдХреЛ рдореМрдЬреВрджрд╛ рдЕрдиреБрдкреНрд░рдпреЛрдЧреЛрдВ рдореЗрдВ рдкреЗрд╢ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рддреЛ рдЗрд╕ рддрдереНрдп рдХреЗ рдХрд╛рд░рдг рдЪреАрдЬреЗрдВ рдЖрд╕рд╛рди рд╣реЛрддреА рд╣реИрдВ рдХрд┐ рдпрд╣ рдЪрд░рдгреЛрдВ рдореЗрдВ, рдЫреЛрдЯреЗ рдЪрд░рдгреЛрдВ рдореЗрдВ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рдорд╛рди рд▓реЗрдВ рдХрд┐ рдбреЗрдЯрд╛ рддреИрдпрд╛рд░ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдлрд╝рдВрдХреНрд╢рди рдХрд╛ рдкрд╣рд▓рд╛ рд╕рдВрд╕реНрдХрд░рдг рд╣реИ, рдЪрд▓реЛ рдЗрд╕реЗ parseData() , рдмрд╕ рдмрджрд▓рд╛рд╡ рдХреЗ рдмрд┐рдирд╛, рдЗрд╕рдХреЗ рдЗрдирдкреБрдЯ рдкрд░ рд╡рд╛рдкрд╕ рдЖ рд╕рдХрддреЗ рд╣реИрдВред рдлрд┐рд░ рдЖрдк рдзреАрд░реЗ-рдзреАрд░реЗ рдЗрд╕ рдлрд╝рдВрдХреНрд╢рди рдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдЬрд┐рдореНрдореЗрджрд╛рд░ рдХреЛрдб рд╕реЗ рддрд░реНрдХ рдХреЛ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред

рдкреНрд░рд┐рдп рдкрд╛рдардХреЛрдВ! , BIF?

Source: https://habr.com/ru/post/hi416011/


All Articles