Lorawan-stack: рд╡реЗрдмрд╣реБрдХ URL рдореЗрдВ рдХрд╕реНрдЯрдо рдЪрд░ рд╕рдорд░реНрдерди

рдХреЛ рдирд┐рд░реНрдорд┐рдд 16 рдЬреБрд▓ре░ 2019  ┬╖  9рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ  ┬╖  рд╕реНрд░реЛрдд: TheThingsNetwork/lorawan-stack

рд╕рд╛рд░рд╛рдВрд╢

рд╡рд░реНрддрдорд╛рди рдореЗрдВ рд╡реЗрдмрд╣реБрдХ рдХрд╛ рдЕрдВрддрд┐рдо URL рд╕реНрдерд┐рд░ рд╣реИ, рдпрд╣ рдХрд╕реНрдЯрдо рдЪрд░ рдЬреИрд╕реЗ JoinEUI , DevID , DevEUI рдФрд░ DevAddr рд╕рдорд░реНрдерди рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИред рдкрд░рд┐рдгрд╛рдо рдпрд╣ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП рдХрд┐ рд╡реЗрдмрд╣реБрдХ рдХреЗ рд▓рд┐рдП рдПрдХ рдЖрдзрд╛рд░ URL рдЬреИрд╕реЗ http://example.com/app1/wh1 http://example.com/app1/wh1/{{.DevEUI}} рдмрди рд╕рдХрддрд╛ рд╣реИ рдФрд░ рд╡реЗрдмрд╣реБрдХ рдПрдВрдбрдкреЙрдЗрдВрдЯ рдХреЛ рдЕрдкрд▓рд┐рдВрдХ рдХреЛ рдмреЗрд╣рддрд░ рддрд░реАрдХреЗ рд╕реЗ рд░реВрдЯ рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИред рдпрд╣ рд╕рдВрджреЗрд╢ рд╡рд┐рд╢рд┐рд╖реНрдЯ URL (рдЕрдкрд▓рд┐рдВрдХ рд╕рдВрджреЗрд╢, рдбрд╛рдЙрдирд▓рд┐рдВрдХ рдХрддрд╛рд░ рдЖрджрд┐) рдХреЗ рдЕрдВрджрд░ рднреА рд▓рд╛рдЧреВ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред

рд╣рдореЗрдВ рдпрд╣ рдХреНрдпреЛрдВ рдЪрд╛рд╣рд┐рдпреЗ?

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

рд╡рд╣рд╛рдВ рдкрд╣рд▓реЗ рд╕реЗ рдХреНрдпрд╛ рд╣реИ? рдЕрдм рдЖрдк рдХреНрдпрд╛ рджреЗрдЦрддреЗ рд╣реИрдВ?

рд╕реНрдЯреЗрдЯрд┐рдХ рдпреВрдЖрд░рдПрд▓ рд╕рдорд░реНрдерди - BaseURL рдЕрдкрд▓рд┐рдВрдХ рдкреНрд░рдХрд╛рд░ рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рд╡рд┐рд╖рдп рдХреЗ рд╕рд╛рде рдЬреБрдбрд╝рд╛ рд╣реБрдЖ рд╣реИ, рд▓реЗрдХрд┐рди рдХреЛрдИ рдХрд╕реНрдЯрдо рд░реВрдЯрд┐рдВрдЧ рдлрд╝реАрд▓реНрдб рдирд╣реАрдВ рд╣реИред

рдХреНрдпрд╛ рдЪреАрдЬрд╝ рдЫреВрдЯ рд░рд╣реА рд╣реИ? рддреБрдо рдХреНрдпрд╛ рджреЗрдЦрдирд╛ рдЪрд╛рд╣рддреЗ рд╣реЛ?

рдХрд╕реНрдЯрдо рд░реВрдЯрд┐рдВрдЧ рдлрд╝реАрд▓реНрдб {{.AppEUI}} , {{.JoinEUI}} , {{.DevID}} , {{.DevEUI}} , {{.DevAddr}} ред

рдкрд░реНрдпрд╛рд╡рд░рдг

рд▓рд╛рдЧреВ рдирд╣реАрдВред

рдЖрдк рдЗрд╕реЗ рдХреИрд╕реЗ рд▓рд╛рдЧреВ рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рд╕реНрддрд╛рд╡ рд░рдЦрддреЗ рд╣реИрдВ?

newRequest. . рдореЗрдВ рдЖрдзрд╛рд░ URL + config URL рдЬреБрдбрд╝рдиреЗ рдХреЗ рдмрд╛рдж URL рдореЗрдВ рдХрд╕реНрдЯрдо рдЪрд░ рдмрджрд▓реЗрдВ

рдХреНрдпрд╛ рдЖрдк рдЗрд╕реЗ рд╕реНрд╡рдпрдВ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рдкреБрд▓ рдЕрдиреБрд░реЛрдз рд╕рдмрдорд┐рдЯ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ?

рд╣рд╛рдВред

application server in progress

рд╕рднреА 9 рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

рдлрд╝реАрд▓реНрдб рдХреИрд╕реЗ рджрд┐рдЦрддреЗ рд╣реИрдВ, рдЗрд╕рдХреЗ рдЖрдзрд╛рд░ рдкрд░, рдореБрдЭреЗ рд╕рдВрджреЗрд╣ рд╣реИ рдХрд┐ рдЖрдк рдЗрд╕реЗ text/template рдХреЗ рд╕рд╛рде рд▓рд╛рдЧреВ рдХрд░рдиреЗ рдХреА рдпреЛрдЬрдирд╛ рдмрдирд╛ рд░рд╣реЗ рдереЗред рдпрджрд┐ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдРрд╕рд╛ рд╣реИ, рддреЛ рдХреГрдкрдпрд╛ рдЗрд╕ рддрдереНрдп рд╕реЗ рдЕрд╡рдЧрдд рд░рд╣реЗрдВ рдХрд┐ рдкреНрд░рддреНрдпреЗрдХ рдЕрдкрд▓рд┐рдВрдХ рдкрд░ рдЯреЗрдореНрдкрд▓реЗрдЯреНрд╕ рдХреЛ рдкрд╛рд░реНрд╕ рдХрд░рдирд╛ рдФрд░ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд░рдирд╛ (рд╡рд┐рд╢реЗрд╖рдХрд░ рдпрджрд┐ рдпрд╣ рдХреЗрд╡рд▓ рдЖрдзрд╛рд░ URL рд╣реА рдирд╣реАрдВ рдмрд▓реНрдХрд┐ рдкрде рднреА рд╣реИ) рд╕рдВрднрд╛рд╡рд┐рдд рд░реВрдк рд╕реЗ рдХрд╛рдлреА рд╕рдВрд╕рд╛рдзрди рдЧрд╣рди рд╣реЛ рд╕рдХрддрд╛ рд╣реИред
рд╕рд╛рде рд╣реА, рдПрдХ рдмрд╣реБрдд рд╣реА рд╕реАрдорд┐рдд рд╕рдВрд░рдЪрдирд╛ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░реЗрдВ рдЬрд┐рд╕рдХреЗ рд╕рд╛рде рдЯреЗрдореНрдкрд▓реЗрдЯ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред рдХреЗрд╡рд▓ рдЖрджрд┐рдо рдкреНрд░рдХрд╛рд░реЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВ (рдЗрд╕рд▓рд┐рдП рд╕рднреА EUI/DevAddr рдХреЛ рд╕реНрдЯреНрд░рд┐рдВрдЧреНрд╕ рдореЗрдВ рдмрджрд▓реЗрдВ), рдкреЙрдЗрдВрдЯрд░реНрд╕ рд╕реЗ рдмрдЪреЗрдВред

рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рд╣рдо рдЯреЗрдореНрдкрд▓реЗрдЯ рдХреЛ рд╣рд░ рдмрд╛рд░ рдлрд┐рд░ рд╕реЗ рд╕рдВрдХрд▓рд┐рдд рдХрд░рдиреЗ рд╕реЗ рдмрдЪрдиреЗ рдХреЗ рд▓рд┐рдП рд╡реЗрдмрд╣реБрдХ рдЖрдИрдбреА + updated_at рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рд╕реНрд╡рдпрдВ рдЯреЗрдореНрдкрд▓реЗрдЯ рдХреЛ рдХреИрд╢ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рд╕рд╛рде рд╣реА рдпрд╣ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдорд╛рдорд▓рд╛ рд╣реИ рдХрд┐ рдХреЗрд╡рд▓ рд╕реНрдЯреНрд░рд┐рдВрдЧреНрд╕ рдХреЛ рдЯреЗрдореНрдкрд▓реЗрдЯ рдореЗрдВ рд╣реА рдкрд╛рд╕ рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП (рдФрд░ рдореИрдВ рдкрд╕рдВрдж рдХрд░реВрдВрдЧрд╛ рдХрд┐ рд╣рдо рдкрд╣рдЪрд╛рдирдХрд░реНрддрд╛рдУрдВ рдХреЗ рдмрд╛рд╣рд░ рдХрд┐рд╕реА рдФрд░ рдЪреАрдЬ рдХрд╛ рдЙрдкрдпреЛрдЧ рди рдХрд░реЗрдВ)ред

рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рджреЛ рд╡рд┐рдХрд▓реНрдк рд╣реИрдВ;

  • рдЗрд╕ рдЙрдкрдпреЛрдЧ рдХреЗ рдорд╛рдорд▓реЗ рдХреЗ рд▓рд┐рдП рд╡рд┐рд╢рд┐рд╖реНрдЯ рдПрдХ рдмрд╣реБрдд рд╣реА рд╕рд░рд▓ рд╕рдВрд░рдЪрдирд╛ рдХреЗ рд╕рд╛рде text/template рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВред рдпрд╛рдиреА, *ttnpb.ApplicationUp рдкрд╛рд╕ рди рдХрд░реЗрдВ рд▓реЗрдХрд┐рди WebhookTemplateFields рдХреЗрд╡рд▓ рдЙрд╕ рд╕рд╛рдорд╛рди рдХреЗ рд╕рд╛рде рдЬреЛ рд╣рдо рд╕рдорд░реНрдерди рдХрд░рддреЗ рд╣реИрдВ
  • рдЬреНрдЮрд╛рдд рдлрд╝реАрд▓реНрдб рдкрд░ рд╕реНрдЯреНрд░рд┐рдВрдЧ рдкреНрд░рддрд┐рд╕реНрдерд╛рдкрди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВред рд╕реБрдкрд░ рдлрд╛рд╕реНрдЯ, рд╡рд╣реА рдкрд░рд┐рдгрд╛рдо

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

рдпрджрд┐ рд╣рдо рд╕рддреНрдпрд╛рдкрди рдирд┐рдпрдореЛрдВ рдХреЛ рд╕рдорд╛рди рд░рдЦрдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ, рддреЛ рд╣рдо $app_id рдЬреИрд╕реЗ рдкреНрд▓реЗрд╕рд╣реЛрд▓реНрдбрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдЗрд╕ рддрд░рд╣ рдкреНрд▓реЗрд╕рд╣реЛрд▓реНрдбрд░ рд╣реЛрд╕реНрдЯ рдореЗрдВ рдорд╛рдиреНрдп рдирд╣реАрдВ рд╣реЛрдВрдЧреЗ (рдХреНрдпреЛрдВрдХрд┐ рд╣рдо рдРрд╕рд╛ рдирд╣реАрдВ рдЪрд╛рд╣рддреЗ рд╣реИрдВ), рд▓реЗрдХрд┐рди рд╡реЗ рдкрде рдореЗрдВ рдорд╛рдиреНрдп рд╣реЛрдВрдЧреЗ (рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ URL рдкрдереЛрдВ рдореЗрдВ $ рдХреА рдЕрдиреБрдорддрд┐ рд╣реИ, рд╣рдореЗрдВ рдЗрд╕реЗ рдЬрд╛рдВрдЪрдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ )

$ RFC3986 рд╕реЗрдХреНрд╢рди 2.2 рдХреЗ рдЕрдиреБрд╕рд╛рд░ рд╣реЛрд╕реНрдЯ рдФрд░ рдкрде рджреЛрдиреЛрдВ рдХреЗ рд╣рд┐рд╕реНрд╕реЗ рдХреЗ рд░реВрдк рдореЗрдВ рдорд╛рдиреНрдп рд╣реИред рдРрд╕рд╛ рдХрд╣рдиреЗ рдХреЗ рд╕рд╛рде, рд╣рдореЗрдВ url.URL рдХреЗ рдореЗрдЬрдмрд╛рди рднрд╛рдЧ рдХреЛ рдкрд╛рд░реНрд╕ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдордЬрдмреВрд░ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред

URI рдЯреЗрдореНрдкреНрд▓реЗрдЯ рдХреЗ рд▓рд┐рдП рдорд╛рдирдХ ( RFC 6570 рдХреЗ рдЕрдиреБрд╕рд╛рд░, 1.2 рдФрд░ 2.2 рджреЗрдЦреЗрдВ) рд╕рд┐рдВрдЯреИрдХреНрд╕ {[operator]variable-list} рд╣реИред рдЪреВрдВрдХрд┐ рд╣рдо рдПрдХ рд╣реЙрдЯ рд╕реНрдкреЙрдЯ рдореЗрдВ рдХрд╛рдо рдХрд░ рд░рд╣реЗ рд╣реИрдВ, рдореБрдЭреЗ рд╡рд┐рд╢реНрд╡рд╛рд╕ рд╣реИ рдХрд┐ рдСрдкрд░реЗрдЯрд░реЛрдВ рдХреЛ рдЫреЛрдбрд╝рдиреЗ рдХрд╛ рдпрд╣ рдПрдХ рдЕрдЪреНрдЫрд╛ рдФрдЪрд┐рддреНрдп рд╣реИ (рдХреНрдпреЛрдВрдХрд┐ рдЙрдиреНрд╣реЗрдВ рд╡рд┐рд╕реНрддрд╛рд░рд┐рдд рдкреНрд░рд╕рдВрд╕реНрдХрд░рдг рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрдЧреА), рдФрд░ рдХреЗрд╡рд▓ рдПрдХ рдЪрд░ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрдВред рдпрд╣ рд╣рдореЗрдВ рдкрд╣рд┐рдпрд╛ рдХреЛ рдлрд┐рд░ рд╕реЗ рдЦреЛрдЬреЗ рдмрд┐рдирд╛ string.ReplaceAll рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИред

"рдПрдХ рдЪрд░ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрдВ" рд╕реЗ рдЖрдкрдХрд╛ рдХреНрдпрд╛ рдорддрд▓рдм рд╣реИ?

рдореБрдЭреЗ рдпрд╣ рднреА рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдЕрдиреБрднрд╡-рд╡рд╛рд░, рдкреНрд░рджрд░реНрд╢рди рд╣рд┐рдЯ рдХреЗ рдЕрд▓рд╛рд╡рд╛ text/template рдХрд╛ рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ рдХрд░рдирд╛ рдЕрдЪреНрдЫрд╛ рд╣реИред рдореИрдВ PHP-рд╢реИрд▓реА рдкрд░рд┐рд╡рд░реНрддрдиреАрдп рдирд╛рдореЛрдВ рдХреЗ рд╕рд╛рде рдареАрдХ рд╣реВрдВред

рдКрдкрд░ рдЙрд▓реНрд▓рд┐рдЦрд┐рдд рдорд╛рдирдХ {appEUI,devEUI} рдЬреИрд╕реЗ рдЕрднрд┐рд╡реНрдпрдХреНрддрд┐рдпреЛрдВ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрдЧрд╛, рдЬреЛ рд╣рдореЗрдВ рд╕рд░рд▓ рд╕реНрдЯреНрд░рд┐рдВрдЧ рдкреНрд░рддрд┐рд╕реНрдерд╛рдкрди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рдирд╣реАрдВ рджреЗрдЧрд╛ред рдзреНрдпрд╛рди рджреЗрдВ рдХрд┐ рдореИрдВрдиреЗ {appEUI}/{devEUI} рдЬреИрд╕реЗ рдЕрднрд┐рд╡реНрдпрдХреНрддрд┐рдпреЛрдВ рдХреЛ рдЕрд╕реНрд╡реАрдХрд╛рд░ рдирд╣реАрдВ рдХрд┐рдпрд╛ рд╣реИ, рдЬрд┐рдирдореЗрдВ рдкреНрд░рддрд┐ рдХреИрдкреНрдЪрд░ рдХреЗрд╡рд▓ рдПрдХ рдЪрд░ рд╣реИ, рдФрд░ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдареАрдХ рд╣реИрдВред

рд╡рд╣ рдПрдХ рдЖрдВрддрд░рд┐рдХ рдкреИрдХреЗрдЬ рд╣реИ рдФрд░ рдЗрд╕реЗ рдореБрдЦреНрдп рдкреИрдХреЗрдЬ рдХреЗ рдмрд╛рд╣рд░ рдЖрдпрд╛рдд рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдЗрд╕реЗ рдРрд╕рд╛ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдПред
рд╕рдВрдкрд╛рджрд┐рдд рдХрд░реЗрдВ: рдореБрдЦреНрдп рдкреИрдХреЗрдЬ рдлрд╝рдВрдХреНрд╢рди рдХреЛ рднреА рдЙрдЬрд╛рдЧрд░ рдХрд░рддрд╛ рд╣реИред

рдХреНрдпрд╛ рдпрд╣ рдкреГрд╖реНрда рдЙрдкрдпреЛрдЧреА рдерд╛?
0 / 5 - 0 рд░реЗрдЯрд┐рдВрдЧреНрд╕

рд╕рдВрдмрдВрдзрд┐рдд рдореБрджреНрджреЛрдВ

htdvisser picture htdvisser  ┬╖  9рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

kschiffer picture kschiffer  ┬╖  6рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

johanstokking picture johanstokking  ┬╖  8рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

adriansmares picture adriansmares  ┬╖  8рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

rvolosatovs picture rvolosatovs  ┬╖  9рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ