рд╡реЗрдм рд╕реЗрд╡рд╛рдПрдВрдПрдХ рдкреНрд░рдгрд╛рд▓реА рдХреЗ рдШрдЯрдХреЛрдВ рдХреЗ рдмреАрдЪ рдпрд╛ рд╡рд┐рднрд┐рдиреНрди рдкреНрд░рдгрд╛рд▓рд┐рдпреЛрдВ рдХреЗ рдмреАрдЪ рдПрдХреАрдХрд░рдг рдХреЗ рд▓рд┐рдП рд╡реНрдпрд╛рдкрдХ рд░реВрдк рд╕реЗ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдПрдХ рддрд░реАрдХреЗ рдХреЗ рд░реВрдк рдореЗрдВ рд╡реЗрдм рд╕реЗрд╡рд╛рдУрдВ рдХреА рд▓реЛрдХрдкреНрд░рд┐рдпрддрд╛ рдЙрдирдХреА рдмрд╣реБрдореБрдЦреА рдкреНрд░рддрд┐рднрд╛ рдХреЗ рд╕рд╛рде-рд╕рд╛рде рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдФрд░ рдбреАрдмрдЧрд┐рдВрдЧ рдореЗрдВ рдЖрд╕рд╛рдиреА рдХреЗ рдХрд╛рд░рдг рд╣реИред рдмрд╣реБрдореБрдЦреА рдкреНрд░рддрд┐рднрд╛ рдЗрдВрдЯрд░рдиреЗрдЯ рдФрд░ HTTP рдкреНрд░реЛрдЯреЛрдХреЙрд▓ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдбреЗрдЯрд╛ рдЯреНрд░рд╛рдВрд╕рдлрд░ рд╕реЗ рдЬреБрдбрд╝реА рд╣реИред рд╡рд┐рднрд┐рдиреНрди рд╕реЗрд╡рд╛рдУрдВ рдФрд░ рдкреНрд▓реЗрдЯрдлрд╛рд░реНрдореЛрдВ рдкрд░ рдЪрд▓рдиреЗ рд╡рд╛рд▓реА рд╡рд┐рднрд┐рдиреНрди рднрд╛рд╖рд╛рдУрдВ рдореЗрдВ рд▓рд┐рдЦреЗ рдЧрдП рдШрдЯрдХреЛрдВ рдХреЗ рдмреАрдЪ рдПрдХреАрдХрд░рдг рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рд╡реЗрдм рд╕реЗрд╡рд╛рдПрдВ рдЕрдкреЗрдХреНрд╖рд╛рдХреГрдд рдЖрд╕рд╛рди рдмрдирд╛рддреА рд╣реИрдВред рдХрдИ рдЖрдИрдбреАрдИ рдореЗрдВ рдЕрдВрддрд░реНрдирд┐рд╣рд┐рдд рдЯреВрд▓ рдФрд░ рдШрдЯрдХреЛрдВ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рд╡реЗрдм рд╕реЗрд╡рд╛рдУрдВ рдХреЛ рд▓рд╛рдЧреВ рдХрд░рдиреЗ рдореЗрдВ рдЖрд╕рд╛рдиреА рдкреНрд░рд╛рдкреНрдд рдХреА рдЬрд╛рддреА рд╣реИ рдЬреЛ рдЖрдкрдХреЛ рдЧреНрд░рд╛рд╣рдХ рд╕реЗрд╡рд╛ рдкрд░ рдХреЙрд▓ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╡реЗрдм рд╕реЗрд╡рд╛ (рдкреНрд░рджрд╛рддрд╛ рдкрдХреНрд╖) рдФрд░ рдЖрд╡рд╢реНрдпрдХ рдХреЛрдб рджреЛрдиреЛрдВ рдХреЛ рдЬрд▓реНрджреА рд╕реЗ рд╡рд┐рдХрд╕рд┐рдд рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддреА рд╣реИред рдбрд┐рдмрдЧрд┐рдВрдЧ рд╕реЗрд╡рд╛рдУрдВ рдХреЛ рдорд╛рдирд╡-рдкрдардиреАрдп рдбреЗрдЯрд╛ рд╡рд┐рдирд┐рдордп рдкреНрд░рд╛рд░реВрдкреЛрдВ рдХреЗ рдЙрдкрдпреЛрдЧ рджреНрд╡рд╛рд░рд╛ рд╕рд░рд▓ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ - XML тАЛтАЛрдФрд░ JSONред рдХреЗ рдЕрддрд┐рд░рд┐рдХреНрдд,рдбрд┐рдмрдЧрд┐рдВрдЧ рдФрд░ рдкрд░реАрдХреНрд╖рдг рд╕реЗрд╡рд╛рдУрдВ рдХреЗ рд▓рд┐рдП рд▓реЛрдб рд╕рд╣рд┐рдд рдХрдИ рдЙрдкрдпреЛрдЧрд┐рддрд╛рдУрдВ рд╣реИрдВредрдЗрд╕ рд▓реЗрдЦ рдореЗрдВ, рд╣рдо рдУрд░реЗрдХрд▓ рдбреАрдмреАрдПрдордПрд╕ рд╕реЗ рд╕реАрдзреЗ рд╡реЗрдм рд╕реЗрд╡рд╛рдУрдВ рдХреЛ рдмрдирд╛рдиреЗ рдХреЗ рдХрдИ рддрд░реАрдХреЛрдВ рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд░реЗрдВрдЧреЗ, рдЕрд░реНрдерд╛рддреН рддреАрд╕рд░реЗ рдкрдХреНрд╖ рдХреЗ рдЯреВрд▓ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдП рдмрд┐рдирд╛редрдкреГрд╖реНрдарднреВрдорд┐
рджрд┐рдпрд╛ рдЧрдпрд╛: рдПрдХ рдмрдбрд╝реЗ рд╡рд┐рддрд░рдг рдиреЗрдЯрд╡рд░реНрдХ рдХреА рд╕реВрдЪрдирд╛ рд╡реНрдпрд╛рдкрд╛рд░ рдкреНрд░рдгрд╛рд▓реА (рд▓рдЧрднрдЧ рдПрдХ рд╣рдЬрд╛рд░ рдЦреБрджрд░рд╛ рд╕реНрдЯреЛрд░), рдЬрд┐рд╕рдореЗрдВ рдХрдИ рдШрдЯрдХ рдФрд░ рд╕рдмрд╕рд┐рд╕реНрдЯрдо рд╢рд╛рдорд┐рд▓ рд╣реИрдВред рдкреНрд░рддреНрдпреЗрдХ рд╕реНрдЯреЛрд░ рдХреЗ рдЕрдВрджрд░ рдПрдХ рдореБрдЦреНрдп рд╕рд░реНрд╡рд░ рд╣реЛрддрд╛ рд╣реИ - рдореБрдЦреНрдп рд╡реНрдпрд╡рд╕рд╛рдп рддрд░реНрдХ рдХреЗ рд╕рд╛рде рдПрдХ рдУрд░реЗрдХрд▓ рдбреЗрдЯрд╛рдмреЗрд╕ред рдХреИрд╢ рдиреЛрдбреНрд╕ рдХреЛ рдЙрдирдХреЗ рд╕реНрдерд╛рдиреАрдп рдбреЗрдЯрд╛рдмреЗрд╕ рд╕реЗ рдЕрд▓рдЧ рд╕реЙрдлреНрдЯрд╡реЗрдпрд░ рджреНрд╡рд╛рд░рд╛ рдкреНрд░рдмрдВрдзрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдпрд╣ рд╕реЙрдлреНрдЯрд╡реЗрдпрд░ рд╕рдордп-рд╕рдордп рдкрд░ рдореБрдЦреНрдп рд╕рд░реНрд╡рд░ (рдбрдмреНрд▓реВрдПрд╕ рдПрд╕рдУрдПрдкреА рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ) рдбреЗрдЯрд╛ рдПрдХрддреНрд░ рдХрд░рддрд╛ рд╣реИ рдФрд░ рдмрд┐рдХреНрд░реА рдХреЗ рдкрд░рд┐рдгрд╛рдо (рдлрд╛рдЗрд▓ рдПрдХреНрд╕рдЪреЗрдВрдЬ) рдХреЛ рд╡рд╛рдкрд╕ рджреЗрддрд╛ рд╣реИредрдкреНрд░рдЧрддрд┐ рд╕реНрдерд┐рд░ рдирд╣реАрдВ рд░рд╣реА, рдФрд░ рдирдП рдЙрдкрдХрд░рдг рджреБрдХрд╛рдиреЛрдВ рдореЗрдВ рджрд┐рдЦрд╛рдИ рджрд┐рдПред рдЗрд╕ рдЙрдкрдХрд░рдг рд╕реЗ рдбреЗрдЯрд╛ рдХреЛ рд╕рдордп-рд╕рдордп рдкрд░ рд╕реНрдЯреЛрд░ рдХреЗ рдореБрдЦреНрдп рд╕рд░реНрд╡рд░ (рдЕрд╡рдзрд┐ - рд╣рд░ рдХреБрдЫ рдорд┐рдирдЯ) рдкрд░ рднреЗрдЬрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП, рдПрдХреАрдХрд░рдг рдЖрд╡рд╢реНрдпрдХ рд░реВрдк рд╕реЗ рд╡реЗрдм рд╕реЗрд╡рд╛ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП, рд╕рдВрджреЗрд╢ рдореЗрдВ рдПрдХ рдирд┐рд╢реНрдЪрд┐рдд рдкреНрд░рд╛рд░реВрдк рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП, рдкреНрд░рдорд╛рдгреАрдХрд░рдг рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИред рд╣рдордиреЗ рдбреЗрдЯрд╛ рдПрдХреНрд╕рдЪреЗрдВрдЬ рдХреЙрдиреНрдЯреНрд░реИрдХреНрдЯреНрд╕ рдХреЛ рджреЗрдЦрд╛ рдФрд░ рдпрд╣ рдкрд╛рдпрд╛ рдХрд┐ рд╡реЗрдм рд╕реЗрд╡рд╛рдУрдВ рдХреА рдкреНрд░рдпреБрдХреНрдд рддрдХрдиреАрдХ рдРрд╕реЗ рдЙрдкрдХрд░рдгреЛрдВ рдХреЗ рд╕рд╛рде рдПрдХреАрдХрд░рдг рдХреА рдЕрдиреБрдорддрд┐ рдирд╣реАрдВ рджреЗрдЧреАред рдФрд░ рд╕рдорд╛рдзрд╛рди рдХреА рддрд▓рд╛рд╢ рд╢реБрд░реВ рд╣реБрдИ ...рдирддреАрдЬрддрди, рд╡рд╛рдВрдЫрд┐рдд рд╡реЗрдм рд╕реЗрд╡рд╛ рдХреЛ рд▓рд╛рдЧреВ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрдИ рд╡рд┐рдХрд▓реНрдкреЛрдВ рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛, рдПрдХ рдЕрд▓рдЧ рдШрдЯрдХ рд▓рд┐рдЦрдиреЗ рдХреЗ рд▓рд┐рдП рдЬреЛ HTTP рджреБрдирд┐рдпрд╛ рдХреЗ рд▓рд┐рдП Oracle рдбреЗрдЯрд╛рдмреЗрд╕ рдХреЗ рд▓рд┐рдП рдПрдХ рд╡рд┐рдВрдбреЛ рдЦреЛрд▓реЗрдЧрд╛: рдПрдХ рддрд░рдл, рдпрд╣ рдПрдХ рд╡реЗрдм рд╕реЗрд╡рд╛ рдкреНрд░рджрд╛рди рдХрд░реЗрдЧрд╛, рджреВрд╕рд░реА рддрд░рдл, рдпрд╣ JDBC рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдбреЗрдЯрд╛рдмреЗрд╕ рдХреЗ рд╕рд╛рде рдмрд╛рддрдЪреАрдд рдХрд░реЗрдЧрд╛ред рдХрдард┐рдирд╛рдИ рдпрд╣ рд╣реИ рдХрд┐ рдирдпрд╛ рдШрдЯрдХ, рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ, рдПрдХ рд╣рдЬрд╛рд░ рд╕реНрдЯреЛрд░ рдореЗрдВ рд╕реНрдерд╛рдкрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рд╣реЛрдЧрд╛, рдФрд░, рджреВрд╕рд░рд╛, рдПрдХ рдФрд░ рд▓рд┐рдВрдХ рджрд┐рдЦрд╛рдИ рджреЗрдЧрд╛ рдЬреЛ рдХрд┐ рд╕рд╛рде рд╣реЛрдирд╛ рд╣реЛрдЧрд╛ред рдЗрд╕рд▓рд┐рдП, рдкреНрд░рд╛рдердорд┐рдХрддрд╛ рдЕрднреА рднреА рдУрд░реЗрдХрд▓ рдирд┐рд░реНрдорд┐рдд рдЙрдкрдХрд░рдгреЛрдВ рдХреЗ рд╕рд╛рде рдПрдХ рд╡реЗрдм рд╕реЗрд╡рд╛ рдХреЛ рд▓рд╛рдЧреВ рдХрд░рдиреЗ рдХрд╛ рд╡рд┐рдХрд▓реНрдк рдерд╛редрдЦреЛрдЬреЛрдВ рдХреЗ рдкрд░рд┐рдгрд╛рдорд╕реНрд╡рд░реВрдк, рд╣рдореЗрдВ рдЗрд╕ рд▓реЗрдЦ рдореЗрдВ рдЪрд╛рд░ рддрд░реАрдХреЗ рдорд┐рд▓реЗрдВрдЧреЗ:- рдиреЗрдЯрд┐рд╡ рдУрд░реЗрдХрд▓ рдПрдХреНрд╕рдПрдордПрд▓ рдбреАрдмреА рд╡реЗрдм рд╕рд░реНрд╡рд┐рд╕реЗрдЬ
- Oracle REST рдбреЗрдЯрд╛ рд╕реЗрд╡рд╛
- рдЬрд╛рд╡рд╛ рд╕рд░реНрд╡рд▓реЗрдЯ
- рдбреЗрдЯрд╛рдмреЗрд╕ рдПрдХреНрд╕реЗрд╕ рдбрд┐рд╕реНрдХреНрд░рд┐рдкреНрдЯрд░ (PL / SQL рд╕рд░реНрд╡рд▓реЗрдЯ)
рдкрд╣рд▓реЗ рджреЛ рд╡рд┐рдХрд▓реНрдкреЛрдВ рдкрд░ рдЕрдзрд┐рдХ рд╡рд┐рд╕реНрддрд╛рд░ рд╕реЗ рд╡рд┐рдЪрд╛рд░ рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред рдореВрд▓ рд░реВрдк рд╕реЗ рд╣рдорд╛рд░реЗ рд╕рд┐рд╕реНрдЯрдо рдореЗрдВ рдиреЗрдЯрд┐рд╡ рдУрд░реЗрдХрд▓ рдПрдХреНрд╕рдПрдордПрд▓ рдбреАрдмреА рд╡реЗрдм рд╕реЗрд╡рд╛рдУрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛, рдЕрд░реНрдерд╛рддреН, рдпрд╣ рд╡рд┐рд░рд╛рд╕рдд рдореЗрдВ рдорд┐рд▓рд╛ рдерд╛, рдЗрд╕рд▓рд┐рдП рдмреЛрд▓рдиреЗ рдХреЗ рд▓рд┐рдПред ORDS рдЗрд╕ рдкреБрд░рд╛рдиреА рддрдХрдиреАрдХ рдХреЗ рд▓рд┐рдП рдПрдХ рдкреНрд░рддрд┐рд╕реНрдерд╛рдкрди рдмрди рдЧрдпрд╛ (рдЗрд╕ рддрдереНрдп рдХреЗ рдмрд╛рд╡рдЬреВрдж рдХрд┐ рдореБрдЭреЗ рдЕрднреА рднреА рдХрдбрд╝реА рдореЗрд╣рдирдд рдХрд░рдиреА рдереА рдФрд░ рдПрдХ рд╣рдЬрд╛рд░ рджреБрдХрд╛рдиреЛрдВ рдореЗрдВ ORDS рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдирд╛ рдерд╛)редрджреЛ рдЕрдиреНрдп рд╡рд┐рдзрд┐рдпрд╛рдВ - рдЬрд╛рд╡рд╛ рд╕рд░реНрд╡рд▓реЗрдЯ рдФрд░ рдкреАрдПрд▓ / рдПрд╕рдХреНрдпреВрдПрд▓ рд╕рд░реНрд╡рд▓реЗрдЯ - рд╣рдордиреЗ рдореВрд▓ Oracle WS рдХреЗ рд╡рд┐рдХрд▓реНрдк рдХреА рдЦреЛрдЬ рдХрд░рддреЗ рд╕рдордп ORDS рдХреЗ рд╕рд╛рде рд╡рд┐рдЪрд╛рд░ рдХрд┐рдпрд╛, рд▓реЗрдХрд┐рди рд╣рдордиреЗ рдкрд░рд┐рдпреЛрдЬрдирд╛ рдореЗрдВ рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ рдХрд┐рдпрд╛ред рдЗрд╕рд▓рд┐рдП, рд╣рдо рдЗрди рджреГрд╖реНрдЯрд┐рдХреЛрдгреЛрдВ рдкрд░ рд╡рд┐рд╕реНрддрд╛рд░ рд╕реЗ рд╡рд┐рдЪрд╛рд░ рдирд╣реАрдВ рдХрд░реЗрдВрдЧреЗ рдФрд░ рдЦреБрдж рдХреЛ рдПрдХ рд╕рдВрдХреНрд╖рд┐рдкреНрдд рд╕рдВрджрд░реНрдн рддрдХ рд╕реАрдорд┐рдд рд░рдЦреЗрдВрдЧреЗредрд▓реЗрдЦ рдирд┐рд░реНрджреЗрд╢ рдХреЗ рд╕рд╛рде рд╡реЗрдм рд╕реЗрд╡рд╛рдУрдВ рдХреЛ рд▓рд╛рдЧреВ рдХрд░рдиреЗ рдХреЗ рдХреБрдЫ рд╡реНрдпрд╛рд╡рд╣рд╛рд░рд┐рдХ рдЙрджрд╛рд╣рд░рдг рдкреНрд░рд╕реНрддреБрдд рдХрд░реЗрдЧрд╛ рдЬреЛ рдХрд╛рдо рдХрд░рдиреЗ рд╡рд╛рд▓реА рд╕реЗрд╡рд╛ рдмрдирд╛рдиреЗ рдореЗрдВ рдорджрдж рдХрд░реЗрдВрдЧреЗредрдиреЗрдЯрд┐рд╡ рдУрд░реЗрдХрд▓ рдПрдХреНрд╕рдПрдордПрд▓ рдбреАрдмреА рд╡реЗрдм рд╕рд░реНрд╡рд┐рд╕реЗрдЬ
рдХреНрд╖рдорддрд╛рдУрдВ
рдЖрдкрдХреЛ WS SOAP (рд╕рдВрд╕реНрдХрд░рдг 1.1) рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ HTTP рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ Oracle рдбреЗрдЯрд╛рдмреЗрд╕ рддрдХ рдкрд╣реБрдБрдЪ рдХреЛ рд╡реНрдпрд╡рд╕реНрдерд┐рдд рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИ:- - : , HTTP-.
- - (WSDL), , -.
- -. , тАФ , тАФ .
- XML-. , , XML, - тАФ Oracle . , WS- Oracle тАФ , - .
- WSDL , , - . тАФ WSDL, WSDL , .
- ( 50 ). , тАФ , . , - тАФ , , .
рдпрд╣ рдзреНрдпрд╛рди рджреЗрдиреЗ рдпреЛрдЧреНрдп рд╣реИ рдХрд┐ рд╡реЗрдм рд╕реЗрд╡рд╛ рдХреЗ рд╕рднреА рдЕрдиреБрд░реЛрдзреЛрдВ рдХреЗ рд▓рд┐рдП рдкреНрд░рдорд╛рдгреАрдХрд░рдг рдЖрд╡рд╢реНрдпрдХ рд╣реИ ( рдкреНрд░рд▓реЗрдЦрди рд╕реЗ : рдореВрд▓ рдкреНрд░рдорд╛рдгреАрдХрд░рдг: рдУрд░реЗрдХрд▓ рдПрдХреНрд╕рдПрдордмреА рдбреАрдмреА рдореВрд▓ рдкреНрд░рдорд╛рдгреАрдХрд░рдг рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рддрд╛ рд╣реИ, рдЬрд╣рд╛рдВ рдПрдХ рдЧреНрд░рд╛рд╣рдХ рдкреНрд░рд╛рдзрд┐рдХрд░рдг рд╢реАрд░реНрд╖рдХ рдореЗрдВ рд╕реНрдкрд╖реНрдЯ рдкрд╛рда рдореЗрдВ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдирд╛рдо рдФрд░ рдкрд╛рд╕рд╡рд░реНрдб рднреЗрдЬрддрд╛ рд╣реИ)ред рдУрд░реЗрдХрд▓ рдореЗрдВ, рдЖрдк HTTP рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рд╕рд░реНрд╡рд░ рд╕рдВрд╕рд╛рдзрдиреЛрдВ рддрдХ рдЕрдирд╛рдо рдкрд╣реБрдВрдЪ рдХреЛ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ - рдУрд░реЗрдХрд▓ рдПрдХреНрд╕рдПрдордмреА рдбреАрдмреА рдкреНрд░реЛрдЯреЛрдХреЙрд▓ рд╕рд░реНрд╡рд░ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ , рд▓реЗрдХрд┐рди рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдпрд╣ рдХреЗрд╡рд▓ GET рдЕрдиреБрд░реЛрдзреЛрдВ рдХреЗ рд▓рд┐рдП рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ, рдФрд░ POST рдЕрдиреБрд░реЛрдзреЛрдВ рдХреЗ рд▓рд┐рдП рдкреНрд░рдорд╛рдгреАрдХрд░рдг рдЖрд╡рд╢реНрдпрдХ рд╣реИред рдЪреВрдВрдХрд┐ рдореВрд▓ рдирд┐рд╡рд╛рд╕реА Oracle WS рдХреЗрд╡рд▓ POST рдЕрдиреБрд░реЛрдзреЛрдВ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдЗрд╕ рддрдХрдиреАрдХ рдХреЗ рд▓рд┐рдП рдЕрдирд╛рдо рдкрд╣реБрдВрдЪ рдХреЛ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд░рдиреЗ рдХрд╛ рдХреЛрдИ рддрд░реАрдХрд╛ рдирд╣реАрдВ рд╣реИредрдЕрдиреБрдХреВрд▓рди
Native Oracle WS рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЖрдкрдХреЛ рдирд┐рдореНрди рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрдЧреА:- Oracle рдореЗрдВ рдЕрдВрддрд░реНрдирд┐рд╣рд┐рдд HTTP рд╕рд░реНрд╡рд░ рдХреЛ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд░реЗрдВред
- Oracle рдбреЗрдЯрд╛рдмреЗрд╕ рдХреЗ рдЕрдВрджрд░ рдкрд╣реБрдВрдЪ рдХреЛ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд░реЗрдВ (HTTP рдкреЛрд░реНрдЯ рдЦреЛрд▓реЗрдВ)ред
- рдПрдХ рд╕рд░реНрд╡рд▓реЗрдЯ рдмрдирд╛рдПрдВред
- ACL (рдкрд╣реБрдБрдЪ рд╕реВрдЪреА) рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд░реЗрдВред
Oracle XML DB HTTP рд╕рд░реНрд╡рд░ рдХреЛ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд░реЗрдВ
HTTP рд╕рд░реНрд╡рд░ рдХреЛ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ рдХрд╛рдо рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП, рд▓реЗрдХрд┐рди рдХреБрдЫ рдорд╛рдорд▓реЛрдВ рдореЗрдВ рдЕрддрд┐рд░рд┐рдХреНрдд рд╢реНрд░реЛрддрд╛ рд╡рд┐рдиреНрдпрд╛рд╕ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛ рд╕рдХрддреА рд╣реИ - DESCRIPTION_LIST рдореЗрдВ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдмреНрд▓реЙрдХ рдХреЛ рдЬреЛрдбрд╝рдирд╛:(DESCRIPTION=
(ADDRESS=(PROTOCOL=tcp)(HOST=localhost)(PORT=8080))(Presentation=HTTP)(Session=RAW)
)
рдЙрд╕рдХреЗ рдмрд╛рдж, рдЖрдкрдХреЛ рд╢реНрд░реЛрддрд╛ рдХреЛ рдкреБрдирд░рд╛рд░рдВрдн рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИредHTTP рдПрдХреНрд╕реЗрд╕ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд░реЗрдВ
- HTTP рдХреЗ рд▓рд┐рдП рд╡рд░реНрддрдорд╛рди рдкреЛрд░реНрдЯ рдХреА рдЬрд╛рдБрдЪред
SELECT dbms_xdb.gethttpport() AS http_port FROM dual;
"0" рдХреЗ рдорд╛рди рдХрд╛ рдЕрд░реНрде рд╣реИ рдХрд┐ HTTP рдПрдХреНрд╕реЗрд╕ рдЕрдХреНрд╖рдо рд╣реИред - рдкреЛрд░реНрдЯ рд╕реЗрдЯрдЕрдкред
BEGIN
dbms_xdb.setHttpPort(8080);
COMMIT;
END;
/
рдПрдХ рд╡реЗрдм рд╕реЗрд╡рд╛ рдХреЗ рд▓рд┐рдП рдПрдХ рд╕рд░реНрд╡рд▓реЗрдЯ рдмрдирд╛рдирд╛
рдХрд╛рд░реНрдп рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╡реЗрдм рд╕реЗрд╡рд╛ рдХреЗ рд▓рд┐рдП, рдбреЗрдЯрд╛рдмреЗрд╕ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдореЗрдВ рд╕рд░реНрд╡рд▓реЗрдЯ рдкрдВрдЬреАрдХрд░рдг рдЖрд╡рд╢реНрдпрдХ рд╣реИредрдПрдХ рд╕рд░реНрд╡рд▓реЗрдЯ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рд╕реНрдХреНрд░рд┐рдкреНрдЯ
DECLARE
l_servlet_name VARCHAR2(32) := 'orawsv';
BEGIN
DBMS_XDB.deleteServletMapping(l_servlet_name);
DBMS_XDB.deleteServlet(l_servlet_name);
DBMS_XDB.addServlet( NAME => l_servlet_name
, LANGUAGE => 'C'
, DISPNAME => 'Oracle Query Web Service'
, DESCRIPT => 'Servlet for issuing queries as a Web Service'
, SCHEMA => 'XDB');
DBMS_XDB.addServletSecRole( SERVNAME => l_servlet_name
, ROLENAME => 'XDB_WEBSERVICES'
, ROLELINK => 'XDB_WEBSERVICES');
DBMS_XDB.addServletMapping( PATTERN => '/orawsv
рдПрдХреНрд╕реЗрд╕ рд╕реВрдЪреА рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд░реЗрдВ
HTTP рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ Oracle рддрдХ рдкрд╣реБрдБрдЪрдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдкрдХреЛ DBMS рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдореЗрдВ рдирд┐рдпрдо рдЬреЛрдбрд╝рдиреЗ рд╣реЛрдВрдЧреЗред рдпрд╣ рдЕрдВрддрд░реНрдирд┐рд╣рд┐рдд DBMS рдЙрдкрдпреЛрдЧрд┐рддрд╛рдУрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИредACL рдХреЛ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЖрдкрдХреЛ рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрдЧреА:- рдбреЗрдЯрд╛рдмреЗрд╕ рд╡рд┐рдиреНрдпрд╛рд╕ (рдиреАрдЪреЗ) рдХреЛ рд╕рдВрдкрд╛рджрд┐рдд рдХрд░рдиреЗ рд╡рд╛рд▓реА рд╕реНрдХреНрд░рд┐рдкреНрдЯ;
- рдбреЗрдЯрд╛рдмреЗрд╕ рд╕реНрдХреАрдорд╛ рдЬрд┐рд╕рдХреЗ рд▓рд┐рдП рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред
рдпрд╣реА рд╣реИ, рдбреЗрдЯрд╛рдмреЗрд╕ рд╕реНрдХреАрдорд╛ рдЬрд┐рд╕рдХреЗ рд▓рд┐рдП ACL рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд┐рдпрд╛ рдЬрд╛ рд░рд╣рд╛ рд╣реИ, рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдмрдирд╛рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред рдиреАрдЪреЗ рджрд┐рдП рдЧрдП рдЙрджрд╛рд╣рд░рдгреЛрдВ рдореЗрдВ, рдЗрд╕ рдЦрдВрдб рдХреЗ рд╕рдВрджрд░реНрдн рд╣реЛрдВрдЧреЗ, рдЙрди рд╕реНрдерд╛рдиреЛрдВ рдкрд░ рдЬрд╣рд╛рдВ рдЖрдкрдХреЛ рдирдП рдбреЗрдЯрд╛рдмреЗрд╕ рд╕реНрдХреАрдорд╛ рдмрдирд╛рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ - рдЙрдирдХреЗ рд▓рд┐рдП рдЖрдкрдХреЛ рдПрд╕реАрдПрд▓ рдХреЛ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрдЧреАредSYS рдпреЛрдЬрдирд╛ рдореЗрдВ, рд╣рдо ACL рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд░рддреЗ рд╣реИрдВ:
DECLARE
l_ws_user VARCHAR2(32) := 'WS_SOAP_TEST';
l_acl VARCHAR2(250) := 'acl_allow_all.xml';
l_tmp VARCHAR2(250);
BEGIN
EXECUTE IMMEDIATE 'GRANT XDB_WEBSERVICES TO "'||l_ws_user||'"';
EXECUTE IMMEDIATE 'GRANT XDB_WEBSERVICES_OVER_HTTP TO "'||l_ws_user||'"';
EXECUTE IMMEDIATE 'GRANT XDB_WEBSERVICES_WITH_PUBLIC TO "'||l_ws_user||'"';
BEGIN
dbms_network_acl_admin.drop_acl(acl => '/sys/acls/'||l_acl);
EXCEPTION
WHEN dbms_network_acl_admin.acl_not_found THEN
NULL;
END;
dbms_network_acl_admin.create_acl( acl => l_acl
, description => 'Allow all connections'
, is_grant => TRUE
, start_date => SYSTIMESTAMP
, end_date => NULL
, principal => 'SYS'
, privilege => 'connect');
dbms_network_acl_admin.assign_acl( acl => l_acl
, host => '*'
, lower_port => NULL
, upper_port => NULL);
dbms_network_acl_admin.add_privilege( acl => l_acl
, principal => l_ws_user
, is_grant => TRUE
, privilege => 'resolve'
, POSITION => NULL
, start_date => SYSTIMESTAMP
, end_date => NULL);
COMMIT;
END;
/
рдпрд╣ рддреБрд░рдВрдд рдзреНрдпрд╛рди рджрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП рдХрд┐ ACL рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдХреЗрд╡рд▓ Native Oracle WS рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╕рдордп рд╣реА рдирд╣реАрдВ рд╣реИ, рдмрд▓реНрдХрд┐ рдЗрд╕ рдЖрд▓реЗрдЦ рдореЗрдВ рдЪрд░реНрдЪрд╛ рдХреА рдЧрдИ рд╡реЗрдм рд╕реЗрд╡рд╛рдУрдВ рдХреЛ рдмрдирд╛рдиреЗ рдХреЗ рдЕрдиреНрдп рд╕рднреА рддрд░реАрдХреЛрдВ рдХреА рднреА рд╣реИредрд╡реЗрдм рд╕реЗрд╡рд╛ рдЙрджрд╛рд╣рд░рдг рдПрдХ рдмреИрдЪ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛
рд╣рдореЗрдВ рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрдЧреА:- рдбреЗрдЯрд╛рдмреЗрд╕ рд╕реНрдХреАрдорд╛ рдЬрд┐рд╕рдореЗрдВ рд╡реЗрдм рд╕реЗрд╡рд╛ рдЕрдиреБрд░реЛрдзреЛрдВ рдХреЛ рд╕рдВрд╕рд╛рдзрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдСрдмреНрдЬреЗрдХреНрдЯ рд╕реНрдерд┐рдд рд╣реЛрдВрдЧреЗред
- рд▓реЙрдЧрд┐рдВрдЧ рдХреЗ рд▓рд┐рдП рддрд╛рд▓рд┐рдХрд╛ред
- рдкреНрд░рдХреНрд░рд┐рдпрд╛ / рдХрд╛рд░реНрдп рдХреЗ рд╕рд╛рде рдкреИрдХреЗрдЬред
- рдХреЛрдИ рднреА рдЙрдкрдХрд░рдг рдЬреЛ рдЖрдкрдХреЛ рд╡реЗрдм рдЕрдиреБрд░реЛрдз рднреЗрдЬрдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИред рдЗрд╕ рд╕реНрдерд┐рддрд┐ рдореЗрдВ, SOAP UI рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ , рд▓реЗрдХрд┐рди рдЖрдк рдХрдорд╛рдВрдб рд▓рд╛рдЗрди рддрдХ рдХрд┐рд╕реА рдЕрдиреНрдп рдЯреВрд▓ рдХреЛ рдЪреБрди рд╕рдХрддреЗ рд╣реИрдВред
рд╡рд┐рд╢реЗрд╖рддрд╛рдПрдВ:- рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдорд╛рдкрджрдВрдбреЛрдВ рдореЗрдВ рдпрд╛ рддреЛ рд╕рд░рд▓ рдпрд╛ рд╡рд╕реНрддреБ рдкреНрд░рдХрд╛рд░ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред рдЕрдиреНрдпрдерд╛, рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХреЛ рд╡реЗрдм рд╕реЗрд╡рд╛ рд╡рд┐рдзрд┐ рдХреЗ рд░реВрдк рдореЗрдВ рдирд╣реАрдВ рдорд╛рдирд╛ рдЬрд╛рдПрдЧрд╛ рдФрд░ рд╕реЗрд╡рд╛ рд╡рд┐рдзрд┐рдпреЛрдВ рдХреА рд╕реВрдЪреА рдореЗрдВ рд╢рд╛рдорд┐рд▓ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред
- рдЗрдирдкреБрдЯ рдпрд╛ рдЖрдЙрдЯрдкреБрдЯ рдбреЗрдЯрд╛ рдХреА рдЬрдЯрд┐рд▓ рд╕рдВрд░рдЪрдирд╛рдУрдВ рдХреЛ рд▓рд╛рдЧреВ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдкрдХреЛ рдСрдмреНрдЬреЗрдХреНрдЯ рдкреНрд░рдХрд╛рд░ (рдмреИрдЪ рдкреНрд░рдХрд╛рд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛) рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред
рд╣рдо рдЖрд╡рд╢реНрдпрдХ рдбреЗрдЯрд╛рдмреЗрд╕ рдСрдмреНрдЬреЗрдХреНрдЯ рдмрдирд╛рддреЗ рд╣реИрдВ:- рдпреЛрдЬрдирд╛
WS_TEST
:
CREATE USER WS_SOAP_TEST IDENTIFIED BY ws_soap_test QUOTA 200M ON USERS;
GRANT CREATE SESSION, RESOURCE TO ws_soap_test;
рддреБрд░рдВрдд рдПрд╕реАрдПрд▓ рдореЗрдВ рдПрдХ рдирдИ рдпреЛрдЬрдирд╛ рдЬреЛрдбрд╝реЗрдВред рдкрд┐рдЫрд▓реЗ рдЕрдиреБрднрд╛рдЧ рдореЗрдВ рд╕реНрдХреНрд░рд┐рдкреНрдЯред - рдирдИ рдпреЛрдЬрдирд╛ рдореЗрдВ, рд▓реЙрдЧрд┐рдВрдЧ рдХреЗ рд▓рд┐рдП рдПрдХ рддрд╛рд▓рд┐рдХрд╛ рдмрдирд╛рдПрдВ
T_WS_REQ_LOG
:
CREATE TABLE T_WS_REQ_LOG
(
id_log NUMBER GENERATED ALWAYS AS IDENTITY,
message VARCHAR2(2000),
proc VARCHAR2(128),
dtm_request TIMESTAMP(6) DEFAULT SYSTIMESTAMP
);
COMMENT ON TABLE T_WS_REQ_LOG IS ' HTTP-';
COMMENT ON COLUMN T_WS_REQ_LOG.id_log IS '';
COMMENT ON COLUMN T_WS_REQ_LOG.message IS '';
COMMENT ON COLUMN T_WS_REQ_LOG.proc IS '';
COMMENT ON COLUMN T_WS_REQ_LOG.dtm_request IS '/ ';
- рдПрдХ рд╕рд░рд▓ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХреЗ рд╕рд╛рде рдкреИрдХреЗрдЬ:
CREATE OR REPLACE PACKAGE PK_NATIVE_WS_TEST IS
PROCEDURE proc_simple
( a_id INTEGER
, a_data VARCHAR2
, o_result OUT VARCHAR2
);
END PK_NATIVE_WS_TEST;
/
CREATE OR REPLACE PACKAGE BODY PK_NATIVE_WS_TEST IS
PROCEDURE proc_simple
( a_id INTEGER
, a_data VARCHAR2
, o_result OUT VARCHAR2
)
AS
BEGIN
INSERT INTO t_ws_req_log (message, proc)
VALUES ('ID='||a_id||'; DATA='||a_data, 'proc_simple')
RETURNING id_log INTO o_result;
END proc_simple;
END PK_NATIVE_WS_TEST;
/
рд╕рдмрд╕реЗ рд╕рд░рд▓ рд╡реЗрдм рд╕реЗрд╡рд╛ рдмрдирд╛рдИ рдФрд░ рдЬрд╛рдиреЗ рдХреЗ рд▓рд┐рдП рддреИрдпрд╛рд░ рд╣реИредрд╕реЗрд╡рд╛ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЖрдкрдХреЛ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдкреНрд░рд╛рд░реВрдк рдореЗрдВ URL рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рд╣реЛрдЧрд╛:http://[server]:[port]/[servlet_name]/[DB_SCHEMA]/[WS_OBJ]?wsdl
рдХрд╣рд╛рдБ:[рд╕рд░реНрд╡рд░] - рдУрд░реЗрдХрд▓ рдбреЗрдЯрд╛рдмреЗрд╕ рд╕рд░реНрд╡рд░ рдХрд╛ рдбреЛрдореЗрди рдирд╛рдо рдпрд╛ рдЖрдИрдкреА рдкрддрд╛[рдкреЛрд░реНрдЯ] - HTTP рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдкреЛрд░реНрдЯ "HTTP рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдПрдХреНрд╕реЗрд╕ рдХреЛ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд░рдирд╛" рдЕрдиреБрднрд╛рдЧ рдореЗрдВ рдирд┐рд░реНрджрд┐рд╖реНрдЯ[HTTPlet_name] - рдЕрдиреБрднрд╛рдЧ рдореЗрдВ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рд╕рд░реНрд╡рд▓реЗрдЯ рдХрд╛ рдирд╛рдо "рд╡реЗрдм рдкрд░ рдПрдХ рд╕рд░реНрд╡рд▓реЗрдЯ рдмрдирд╛рдирд╛ред рд╕реЗрд╡рд╛ "[DB_SCHEMA] - рдбреЗрдЯрд╛рдмреЗрд╕ рд╕реНрдХреАрдорд╛ рдХрд╛ рдирд╛рдо (рдКрдкрд░реА рдорд╛рдорд▓реЗ рдореЗрдВ)[WS_OBJ] - рд╕реЗрд╡рд╛ рдХрд╛ рдирд╛рдо (рдКрдкрд░реА рдорд╛рдорд▓реЗ рдореЗрдВ), рдЬреЛ рдбреЗрдЯрд╛рдмреЗрд╕ рдСрдмреНрдЬреЗрдХреНрдЯ рдХреЗ рдирд╛рдо рдХреЗ рдмрд░рд╛рдмрд░ рд╣реИ, рд╣рдорд╛рд░реЗ рдорд╛рдорд▓реЗ рдореЗрдВ - рдкреИрдХреЗрдЬ рдХрд╛ рдирд╛рдордХреГрдкрдпрд╛ рдзреНрдпрд╛рди рджреЗрдВ рдХрд┐ URL рдорд╛рдорд▓рд╛ рд╕рдВрд╡реЗрджрдирд╢реАрд▓ рд╣реИ!рд▓рд┐рдВрдХ рдЙрджрд╛рд╣рд░рдг:http://my.server:8080/orawsv/WS_SOAP_TEST/PK_NATIVE_WS_TEST?wsdl
рдпрджрд┐ рд╣рдо рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдореЗрдВ рдЗрд╕ рд▓рд┐рдВрдХ рдкрд░ рдХреНрд▓рд┐рдХ рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рд╣рдо рдЕрдкрдиреЗ WSDL рдкреИрдХреЗрдЬ рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдк рд╕реЗ рдирд┐рд░реНрдорд┐рдд рд╣реЛ рдЬрд╛рдПрдВрдЧреЗ:WSDL<definitions name="PK_NATIVE_WS_TEST"
targetNamespace="http://xmlns.oracle.com/orawsv/WS_SOAP_TEST/PK_NATIVE_WS_TEST"
xmlns="http://schemas.xmlsoap.org/wsdl/"
xmlns:tns="http://xmlns.oracle.com/orawsv/WS_SOAP_TEST/PK_NATIVE_WS_TEST"
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/">
<types>
<xsd:schema targetNamespace="http://xmlns.oracle.com/orawsv/WS_SOAP_TEST/PK_NATIVE_WS_TEST"
elementFormDefault="qualified">
<xsd:element name="PROC_SIMPLEInput">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="A_DATA-VARCHAR2-IN" type="xsd:string"/>
<xsd:element name="A_ID-NUMBER-IN" type="xsd:integer"/>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
<xsd:element name="PROC_SIMPLEOutput">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="O_RESULT" type="xsd:string"/>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
</xsd:schema>
</types>
<message name="PROC_SIMPLEInputMessage">
<part name="parameters" element="tns:PROC_SIMPLEInput"/>
</message>
<message name="PROC_SIMPLEOutputMessage">
<part name="parameters" element="tns:PROC_SIMPLEOutput"/>
</message>
<portType name="PK_NATIVE_WS_TESTPortType">
<operation name="PROC_SIMPLE">
<input message="tns:PROC_SIMPLEInputMessage"/>
<output message="tns:PROC_SIMPLEOutputMessage"/>
</operation>
</portType>
<binding name="PK_NATIVE_WS_TESTBinding"
type="tns:PK_NATIVE_WS_TESTPortType">
<soap:binding style="document" transport="http://schemas.xmlsoap.org/soap/http"/>
<operation name="PROC_SIMPLE">
<soap:operation
soapAction="PROC_SIMPLE"/>
<input>
<soap:body parts="parameters" use="literal"/>
</input>
<output>
<soap:body parts="parameters" use="literal"/>
</output>
</operation>
</binding>
<service name="PK_NATIVE_WS_TESTService">
<documentation>Oracle Web Service</documentation>
<port name="PK_NATIVE_WS_TESTPort" binding="tns:PK_NATIVE_WS_TESTBinding">
<soap:address
location="http://******:8080/orawsv/WS_SOAP_TEST/PK_NATIVE_WS_TEST"/>
</port>
</service>
</definitions>
рд╕реЗрд╡рд╛ рдХрд╛ рдкрд░реАрдХреНрд╖рдг рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, SOAP UI рдореЗрдВ рдПрдХ рдирдпрд╛ SOAP рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдмрдирд╛рдПрдВред URL рдХреЗ рд░реВрдк рдореЗрдВ, рдКрдкрд░ рджрд┐рдП рдЧрдП рдЙрджрд╛рд╣рд░рдг рд╕реЗ рдкрддрд╛ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░реЗрдВредрдЦреЛрд▓рдиреЗ рдкрд░, Request 1
рд╣рдо рджреЗрдЦрддреЗ рд╣реИрдВ рдХрд┐ рдЕрдиреБрд░реЛрдз рдЯреЗрдореНрдкрд▓реЗрдЯ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдбрдмреНрд▓реНрдпреВрдПрд╕рдбреАрдПрд▓ рджреНрд╡рд╛рд░рд╛ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдк рд╕реЗ рдЙрддреНрдкрдиреНрди рд╣реЛрддрд╛ рд╣реИредрдЕрдиреБрд░реЛрдз рдХреЗ рд▓рд┐рдП рддреБрд░рдВрдд рдореВрд▓ рдкреНрд░рд╛рдзрд┐рдХрд░рдг рдЬреЛрдбрд╝реЗрдВ - рдбреЗрдЯрд╛рдмреЗрд╕ рд╕реЗ рдХрдиреЗрдХреНрдЯ рдХрд░рддреЗ рд╕рдордп рд▓реЙрдЧрд┐рди рдФрд░ рдкрд╛рд╕рд╡рд░реНрдб рд╕рдорд╛рди рд╣реЛрддреЗ рд╣реИрдВред
рдЙрджрд╛рд╣рд░рдг рдЕрдиреБрд░реЛрдз рдФрд░ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ред рдХреГрдкрдпрд╛ рдзреНрдпрд╛рди рджреЗрдВ рдХрд┐ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдк рд╕реЗ рдЙрддреНрдкрдиреНрди рдЕрдиреБрд░реЛрдз рдореЗрдВ рдПрдХ рд░реЗрдЦрд╛ рдЬреЛрдбрд╝реА рдЧрдИ рд╣реИ <pk:O_RESULT-VARCHAR2-OUT/>
ред рддрдереНрдп рдпрд╣ рд╣реИ рдХрд┐ Oracle 12c рдореЗрдВ рдПрдХ рдмрдЧ рд╣реИ: OUT рдЪрд░ рдХреЛ WSDL рдореЗрдВ рдореВрд▓ рдирд┐рд╡рд╛рд╕реА Oracle WS рдХреЗ рд▓рд┐рдП рдирд╣реАрдВ рдЬреЛрдбрд╝рд╛ рдЬрд╛рддрд╛ рд╣реИ)ред
рдХреЙрд▓ рдХрд╛ рдкрд░рд┐рдгрд╛рдо рд▓реЙрдЧ рдЯреЗрдмрд▓ рдореЗрдВ рджрд┐рдЦрд╛рдИ рджреЗрддрд╛ рд╣реИред
рдЬрд╛рдБрдЪ - рдкрд░рд┐рдгрд╛рдо
рдиреЗрдЯрд┐рд╡ рдСрд░реЗрдХрд▓ рдПрдХреНрд╕рдПрдордмреА рдбреАрдмреА рд╡реЗрдм рд╕рд░реНрд╡рд┐рд╕реЗрдЬ рддрдХрдиреАрдХ рдХрд╛ рдЙрдкрдпреЛрдЧ рдПрдХ рдФрджреНрдпреЛрдЧрд┐рдХ рд╕рдорд╛рдзрд╛рди рдХреЗ рд░реВрдк рдореЗрдВ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рдмрд╢рд░реНрддреЗ рдХрд┐ рдЗрд╕ рд╡реЗрдм рд╕реЗрд╡рд╛ (рдХреБрдЫ рд╕реЗрдХрдВрдб рдореЗрдВ рдПрдХ рдЕрдиреБрд░реЛрдз) рдкрд░ рдХреЛрдИ рднрд╛рд░реА рднрд╛рд░ рди рд╣реЛред рдпрд╣ рд╡рд┐рдХрд▓реНрдк рдЙрдкрдпреБрдХреНрдд рд╣реИ рдЬрдм рдЙрдкрднреЛрдХреНрддрд╛рдУрдВ рдХреЗ рдкрд╛рд╕ рд╡реЗрдм рд╕реЗрд╡рд╛ (рдЗрд╕рдХреА рд╡рд┐рд╢реЗрд╖рддрд╛рдУрдВ, рдбреЗрдЯрд╛ рд╕рдВрд░рдЪрдирд╛, рдкреНрд░рд╕рдВрд╕реНрдХрд░рдг рддрд░реНрдХ) рдХреЗ рд▓рд┐рдП рд╕рдЦреНрдд рдЖрд╡рд╢реНрдпрдХрддрд╛рдПрдВ рдирд╣реАрдВ рд╣реИрдВ рдФрд░ рдХреЛрдИ рд╕рдЦреНрдд рдкреВрд░реНрд╡ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдЕрдиреБрдмрдВрдз рдирд╣реАрдВ рд╣реИред рдпрджрд┐ рдЖрдкрдХреЛ рдкреВрд░реНрд╡рдирд┐рд░реНрдзрд╛рд░рд┐рдд WSDL (рдирдП рдЙрдкрдХрд░рдгреЛрдВ рдХреЗ рд╕рд╛рде рд╣рдорд╛рд░реЗ рдорд╛рдорд▓реЗ рдореЗрдВ) рдХреЗ рдЕрдиреБрд╕рд╛рд░ рдПрдХ рд╡реЗрдм рд╕реЗрд╡рд╛ рдмрдирд╛рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рддреЛ рдореВрд▓ Oracle WS рддрдХрдиреАрдХ рдЕрдиреБрдкрдпреБрдХреНрдд рд╣реЛрдЧреАредOracle REST рдбреЗрдЯрд╛ рд╕реЗрд╡рд╛
рд╕рдВрд╕реНрдХрд░рдг 11.1 рд╕реЗ рд╢реБрд░реВ рд╣реЛрдХрд░, Oracle рдиреЗ Oracle REST рдбреЗрдЯрд╛ рд╕рд░реНрд╡рд┐рд╕ (ORDS) рдирд╛рдордХ рдПрдХ рдЕрд▓рдЧ рдореЙрдбреНрдпреВрд▓ рдХреЗ рд░реВрдк рдореЗрдВ рдкреВрд░рд╛ RESTful рд╕рдорд░реНрдерди рдкреЗрд╢ рдХрд┐рдпрд╛редORDS рдПрдХ рдЬрд╛рд╡рд╛ рдЕрдиреБрдкреНрд░рдпреЛрдЧ рд╣реИ рдЬреЛ рдЖрдкрдХреЛ SQL рдФрд░ PL / SQL рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ Oracle рдбреЗрдЯрд╛рдмреЗрд╕ рдХреЗ рд▓рд┐рдП рдПрдХ RESTful API рдмрдирд╛рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИред рдпрд╣ Oracle HTTP рд╕рд░реНрд╡рд░ рдФрд░ mod_plsql рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХрд╛ рдПрдХ рд╡рд┐рдХрд▓реНрдк рд╣реИред рд╕рдВрдХреНрд╖реЗрдк рдореЗрдВ, ORDS рдмрд╛рд╣рд░реА рджреБрдирд┐рдпрд╛ рдФрд░ рдПрдХ Oracle рдбреЗрдЯрд╛рдмреЗрд╕ рдХреЗ рдмреАрдЪ рдПрдХ HTTP рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рд╣реИред рдпрд╣ рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдЖрдкрдХреЛ рдХрд┐рд╕реА рднреА рдбреЗрдЯрд╛рдмреЗрд╕ рдСрдмреНрдЬреЗрдХреНрдЯ рдХреЗ рд▓рд┐рдП рдЖрдиреЗ рд╡рд╛рд▓реА HTTP рдЕрдиреБрд░реЛрдзреЛрдВ рдХреЛ рдмрдВрдж рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИ - рдПрдХ рдЯреЗрдмрд▓ рдпрд╛ рдкреАрдПрд▓ / рдПрд╕рдХреНрдпреВрдПрд▓ рдкреНрд░рдХреНрд░рд┐рдпрд╛редрдЖрд╡рд╢реНрдпрдХ рдбреЗрдЯрд╛рдмреЗрд╕ рдХреЗ рд▓рд┐рдП рдУрдЖрд░рдбреАрдПрд╕ рдХреЛ рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдиреЗ, рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд░рдиреЗ рдФрд░ рдЪрд▓рд╛рдиреЗ рдХреЗ рд▓рд┐рдП рд╕рднреА рдХреА рдЬрд░реВрд░рдд рд╣реИред REST рд╕реЗрд╡рд╛рдУрдВ рдХреЛ рдмрдирд╛рдиреЗ рдХреА рдЖрдЧреЗ рдХреА рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдкреАрдПрд▓ / рдПрд╕рдХреНрдпреВрдПрд▓ рдореЗрдВ рдХреЛрдб рд▓рд┐рдЦрдиреЗ рдХреЗ рд▓рд┐рдП рдиреАрдЪреЗ рдЖрддреА рд╣реИ (рдпрд╛ рдЖрдИрдбреАрдИ рдореЗрдВ рдХреНрд▓рд┐рдХ рдХрд░рдХреЗ рднреА рдЕрдЧрд░ рдХреЛрдб рд▓рд┐рдЦрдиреЗ рдХреЗ рд▓рд┐рдП рдмрд╣реБрдд рдЖрд▓рд╕реА рд╣реИ)редORDS рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХреЛрдИ рдЕрддрд┐рд░рд┐рдХреНрдд рд▓рд╛рдЗрд╕реЗрдВрд╕ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИредрдЖрд╡рд╢реНрдпрдХрддрд╛рдПрдБ:- рдЬрд╛рд╡рд╛ JDK 8 рдпрд╛ рдЙрдЪреНрдЪрддрд░;
- Oracle 11.1 рдпрд╛ рдмрд╛рдж рдХрд╛ (Oracle 11 XE рд░рд┐рд▓реАрдЬрд╝ 2 рднреА рд╕рдорд░реНрдерд┐рдд рд╣реИ)ред
рдХрдИ ORDS рдкрд░рд┐рдирд┐рдпреЛрдЬрди рд╡рд┐рдХрд▓реНрдк рд╕рдорд░реНрдерд┐рдд рд╣реИрдВ:- рд╕реНрдЯреИрдВрдбрдЕрд▓реЛрди рдореЛрдб;
- рдПрдкреНрд▓рд┐рдХреЗрд╢рди рд╕рд░реНрд╡рд░ (Oracle WebLogic рд╕рд░реНрд╡рд░, Apache Tomcat) рдкрд░ред
рдХреНрд╖рдорддрд╛рдУрдВ
ORDS рдЖрдкрдХреЛ рдЗрд╕рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИ:- рдПрдХ рдкреНрд░рддрд┐рд╖реНрдард┐рдд рд╢реИрд▓реА рдореЗрдВ рд╕рдВрд╕рд╛рдзрдиреЛрдВ рддрдХ рдкрд╣реБрдВрдЪ рд╡реНрдпрд╡рд╕реНрдерд┐рдд рдХрд░реЗрдВред
- "рджреВрд░рд╕реНрде рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХреЙрд▓" (RPC- рд╢реИрд▓реА рдЗрдВрдЯрд░реИрдХреНрд╢рди) рдХреА рд╢реИрд▓реА рдореЗрдВ рд╕рд╣рднрд╛рдЧрд┐рддрд╛ рдмрдирд╛рдПрдБред
рд╕реАрдзреЗ рд╢рдмреНрджреЛрдВ рдореЗрдВ рдХрд╣реЗрдВ рддреЛ ORDS рдХреА рдорджрдж рд╕реЗ рдЖрдк рдХреБрдЫ рдЦрд╛рд╕ рдбреЗрдЯрд╛рдмреЗрд╕ рдСрдмреНрдЬреЗрдХреНрдЯреНрд╕ - рдЯреЗрдмрд▓, рдкреНрд░реЛрд╕реАрдЬрд░, рдлрдВрдХреНрд╢рди, рдкреИрдХреЗрдЬ рдХреЗ рдЬрд░рд┐рдП HTTP рддрдХ рдкрд╣реБрдВрдЪ рдЦреЛрд▓ рд╕рдХрддреЗ рд╣реИрдВредрдкрд╣рд▓реЗ рдорд╛рдорд▓реЗ рдореЗрдВ, рд╣рдо рд╕рдВрд╕рд╛рдзрдиреЛрдВ рдХреЗ рд╕рд╛рде рдЗрд╕ рдЕрд░реНрде рдореЗрдВ рдХрд╛рдо рдХрд░ рд░рд╣реЗ рд╣реИрдВ рдХрд┐ рдЙрдиреНрд╣реЗрдВ Restful рд╡рд╛рд╕реНрддреБрдХрд▓рд╛ рд╢реИрд▓реА рдореЗрдВ рд╕рдордЭрд╛ рдЬрд╛рддрд╛ рд╣реИред рдкреНрд░рддреНрдпреЗрдХ рд╕рдВрд╕рд╛рдзрди рдХреЛ рдПрдХ рдЕрджреНрд╡рд┐рддреАрдп рдпреВрдЖрд░рдЖрдИ рджреНрд╡рд╛рд░рд╛ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рдФрд░ рд╕рдВрд╕рд╛рдзрдиреЛрдВ рдХреЗ рд╕рд╛рде рд╕рдВрдЪрд╛рд▓рди (рд╕реАрдЖрд░рдпреВрдбреА - рдмрдирд╛рдПрдВ, рдкрдврд╝реЗрдВ, рд╕рдВрд╢реЛрдзрд┐рдд рдХрд░реЗрдВ, рд╣рдЯрд╛рдПрдВ) HTTP рдЕрдиреБрд░реЛрдз рд╕реЗ рд╕рдВрдЪрд╛рд▓рди рджреНрд╡рд╛рд░рд╛ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд┐рдП рдЬрд╛рддреЗ рд╣реИрдВ: рдкреАрдпреВрдЯреА, рдкреЛрд╕реНрдЯ, рдЬреАрдИрдЯреА, DELETEред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдпрджрд┐ рд╕рдВрд╕рд╛рдзрди рдХрд░реНрдордЪрд╛рд░реА рддрд╛рд▓рд┐рдХрд╛ рдореЗрдВ рдПрдХ рдкреНрд░рд╡рд┐рд╖реНрдЯрд┐ рд╣реИ, рддреЛ рдпрд╣ рдкреНрд░рд╡рд┐рд╖реНрдЯрд┐ рдлреЙрд░реНрдо рдХреЗ рдПрдХ рдпреВрдЖрд░рдЖрдИ рджреНрд╡рд╛рд░рд╛ рдЙрдкрд▓рдмреНрдз рд╣реЛрдЧреА:GET https://server:port/ords/workspace/hr/employees/7369
рдпрд╣рд╛рдВ, рдбреЗрдЯрд╛рдмреЗрд╕ рд╕реНрдХреАрдорд╛ рдирд╛рдо, рддрд╛рд▓рд┐рдХрд╛ рдХрд╛ рдирд╛рдо, рдФрд░ рддрд╛рд▓рд┐рдХрд╛ рдореЗрдВ рд░рд┐рдХреЙрд░реНрдб рдЖрдИрдбреА рдХреЛ рдпреВрдЖрд░рдЖрдИ рдореЗрдВ рджрд░реНрд╢рд╛рдпрд╛ рдЧрдпрд╛ рд╣реИред рдЗрд╕ рдкреНрд░рдХрд╛рд░, рдпрд╣ HTTP рдЕрдиреБрд░реЛрдз рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рддрд╛рд▓рд┐рдХрд╛ рд╕реЗ рдПрдХ рд╕реЗрд▓реЗрдХреНрдЯ рдСрдкрд░реЗрд╢рди рдХрд░рддрд╛ рд╣реИред рдЕрдиреНрдп рд╕рдВрдЪрд╛рд▓рди (рдЬреЛрдбрд╝рдиреЗ, рдмрджрд▓рдиреЗ, рд╣рдЯрд╛рдиреЗ) рдХреЗ рд╕рд╛рде, рд╕рдВрдЪрд╛рд░ рдХрд╛ рд╕рд┐рджреНрдзрд╛рдВрдд рд╕рдорд╛рди рд╣реИ: рд╕рдВрд╕рд╛рдзрди рдХрд╛ рдорд╛рд░реНрдЧ URI рдореЗрдВ рдЗрдВрдЧрд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рдФрд░ рдЕрддрд┐рд░рд┐рдХреНрдд рдкреИрд░рд╛рдореАрдЯрд░ рдЕрдиреБрд░реЛрдз рдирд┐рдХрд╛рдп рдореЗрдВ рдЗрдВрдЧрд┐рдд рдХрд┐рдП рдЬрд╛рддреЗ рд╣реИрдВ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рддрд╛рд▓рд┐рдХрд╛ рдореЗрдВ рд░рд┐рдХреЙрд░реНрдб рдбрд╛рд▓рдиреЗ рдХреЗ рд▓рд┐рдП рдлрд╝реАрд▓реНрдб рдорд╛рдиредрджреВрд╕рд░реЗ рдорд╛рдорд▓реЗ рдореЗрдВ, рд╕рдВрд╕рд╛рдзрди рддрдХ рдкрд╣реБрдВрдЪрдиреЗ рдХреЗ рдмрдЬрд╛рдп, рдПрдХ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХреЙрд▓ рдХрд╛ рд╕реАрдзреЗ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЬреЛ рдкрд╣рд▓реЗ рдорд╛рдорд▓реЗ (CRUD) рдХреЗ рд╕рдорд╛рди рд╣реА рд╕рдм рдХреБрдЫ рдХрд░ рд╕рдХрддрд╛ рд╣реИ, рд╕рд╛рде рд╣реА рдХрд┐рд╕реА рдЕрдиреНрдп рддрд░реНрдХ рдХреЛ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд░рддрд╛ рд╣реИ рдЬреЛ рдЖрд╡рд╢реНрдпрдХ рд╡реНрдпрд╛рд╡рд╕рд╛рдпрд┐рдХ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХреЛ рд▓рд╛рдЧреВ рдХрд░рддрд╛ рд╣реИред рдкреИрдХреЗрдЬ рд╕реЗ рдПрдХ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХреЙрд▓ рдЗрд╕ рдкреНрд░рд╛рд░реВрдк рдХреЗ рдПрдХ HTTP рдЕрдиреБрд░реЛрдз рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ:http://localhost:8080/ords/my_schema/my_pkg/MY_PROC
рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХреЗ рд▓рд┐рдП рдкреИрд░рд╛рдореАрдЯрд░ JSON рдкреНрд░рд╛рд░реВрдк рд╕рдВрд░рдЪрдирд╛рдУрдВ рдХреЗ рд░реВрдк рдореЗрдВ рдЕрдиреБрд░реЛрдз рдирд┐рдХрд╛рдп рдореЗрдВ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХрд┐рдП рдЬрд╛рддреЗ рд╣реИрдВ {"param" : "value"}
ред рдКрдкрд░ рдЪрд░реНрдЪрд╛ рдХреА рдЧрдИ рдореВрд▓ рдирд┐рд╡рд╛рд╕реА Oracle WS рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╕рдордп рдПрдХ рд╣реА рджреГрд╖реНрдЯрд┐рдХреЛрдг рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди REST рд╕реЗрд╡рд╛рдУрдВ рдХреЗ рдорд╛рдорд▓реЗ рдореЗрдВ SOAP рдкреНрд░реЛрдЯреЛрдХреЙрд▓ рджреНрд╡рд╛рд░рд╛ рдХреЛрдИ рдкреНрд░рддрд┐рдмрдВрдз рдирд╣реАрдВ рд▓рдЧрд╛рдпрд╛ рдЧрдпрд╛ рд╣реИредрдкреЗрд╢реЗрд╡рд░реЛрдВ- рдПрдХ рд▓рдЪреАрд▓рд╛ рддрдВрддреНрд░ рдЬреЛ рдЖрдкрдХреЛ рдХрд┐рд╕реА рднреА рдЬрдЯрд┐рд▓рддрд╛ рдХреА рд╡реЗрдм рд╕реЗрд╡рд╛рдУрдВ рдХреЛ рд▓рд╛рдЧреВ рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИред
- рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдХреА рд╕рд╛рджрдЧреА: рдПрдХ рдкреАрдПрд▓ / рдПрд╕рдХреНрдпреВрдПрд▓ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХреЛ рд╡реЗрдм рд╕реЗрд╡рд╛ рдореЗрдВ рдмрджрд▓рдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдкрдХреЛ рдХреЗрд╡рд▓ рдХреБрдЫ рд╡рд┐рд╢рд┐рд╖реНрдЯ рдХрдорд╛рдВрдб рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред рдФрд░ SQL рдбреЗрд╡рд▓рдкрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реБрдП, рдПрдХ REST API рдмрдирд╛рдХрд░ рдПрдХ рдорд╛рдЙрд╕ рдХреНрд▓рд┐рдХ рдореЗрдВ рдХрдо рд╕реЗ рдХрдо рдХреЛрдб рд▓реЗрдЦрди рдХреЗ рд╕рд╛рде рдмрджрд▓ рдЬрд╛рддрд╛ рд╣реИред
- рдкреНрд░рдорд╛рдгреАрдХрд░рдг рдХреЗ рдмрд┐рдирд╛ рд╡реЗрдм рд╕реЗрд╡рд╛ рдХреЛ рд▓рд╛рдЧреВ рдХрд░рдиреЗ рдХреА рдХреНрд╖рдорддрд╛ред
рдЛрдг- ORDS рдорд╛рдирдХ рдУрд░реЗрдХрд▓ рдкреИрдХреЗрдЬ рдореЗрдВ рд╢рд╛рдорд┐рд▓ рдирд╣реАрдВ рд╣реИ - рдЗрд╕реЗ рдкреНрд░рддреНрдпреЗрдХ рд╕рд░реНрд╡рд░ рдХреЗ рд▓рд┐рдП рдЕрд▓рдЧ рд╕реЗ рд╕реНрдерд╛рдкрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП (рдЕрддрд┐рд░рд┐рдХреНрдд рд▓рд╛рдЗрд╕реЗрдВрд╕, рдЬреИрд╕рд╛ рдХрд┐ рдкрд╣рд▓реЗ рд╣реА рдЙрд▓реНрд▓реЗрдЦ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рдЖрд╡рд╢реНрдпрдХ рдирд╣реАрдВ рд╣реИрдВ)ред рдпрджрд┐ рдЖрдкрдХреЗ рдкрд╛рд╕ рд╣рдЬрд╛рд░реЛрдВ рдбреЗрдЯрд╛рдмреЗрд╕ рд╕рд░реНрд╡рд░ рд╣реИрдВ рддреЛ рдпрд╣ рдПрдХ рд╕рдорд╕реНрдпрд╛ рд╣реЛ рд╕рдХрддреА рд╣реИред
рдЕрдиреБрдХреВрд▓рди
ORDS рдХреЛ рджреЛ рдореЛрдб рдореЗрдВ рд▓реЙрдиреНрдЪ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ: рдПрдкреНрд▓рд┐рдХреЗрд╢рди рд╕рд░реНрд╡рд░ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдпрд╛ рд╕реНрдЯреИрдВрдбрдЕрд▓реЛрди рдореЛрдб рдореЗрдВредрдпрд╣ рдЖрд▓реЗрдЦ рдХреЗрд╡рд▓ рд╕реНрдЯреИрдВрдбрдЕрд▓реЛрди рдореЛрдб рдореЗрдВ рдЪрд▓рд╛рдиреЗ рдХреЗ рд╡рд┐рдХрд▓реНрдк рдкрд░ рдЪрд░реНрдЪрд╛ рдХрд░рддрд╛ рд╣реИредORDS рдХреЗ рд▓рд┐рдП рдЖрдкрдХреЛ рдЖрд╡рд╢реНрдпрдХ рдХрд╛рд░реНрдп рдХрд░рдиреЗ рд╣реЛрдВрдЧреЗ:- рд╕реНрдерд╛рдкрдирд╛ рд╕реЗ рдкрд╣рд▓реЗ рд╕реЗрдЯрд┐рдВрдЧреНрд╕ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд░реЗрдВред
- ODRS рд╕реНрдерд╛рдкрдирд╛ рдХреЛ рдкреВрд░рд╛ рдХрд░реЗрдВред
- ORDS рд▓реЙрдиреНрдЪ рдХрд░реЗрдВред
- ACL рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд░реЗрдВ (рдЗрдЪреНрдЫрд┐рдд рдбреЗрдЯрд╛рдмреЗрд╕ рд╕реНрдХреАрдорд╛ рдХреЗ рд▓рд┐рдП)ред
рд╕рдорд╛рдпреЛрдЬрди
ORDS рд╡рд┐рддрд░рдг рдореЗрдВ рдПрдХ рдРрд╕реА рдлрд╝рд╛рдЗрд▓ рд╣реЛрддреА рд╣реИ рдЬрд┐рд╕рдореЗрдВ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ рдРрд╕рд╛ рдкреИрд░рд╛рдореАрдЯрд░ рд╣реЛрддрд╛ рд╣реИ:db.hostname=
db.port=
db.servicename=
db.sid=
db.username=APEX_PUBLIC_USER
migrate.apex.rest=false
rest.services.apex.add=
rest.services.ords.add=true
schema.tablespace.default=SYSAUX
schema.tablespace.temp=TEMP
standalone.http.port=8080
standalone.static.images=
user.tablespace.default=USERS
user.tablespace.temp=TEMP
рдорд╛рдирдХреЛрдВ рдХрд╛ рд╡рд┐рд╡рд░рдг рджрд╕реНрддрд╛рд╡реЗрдЬрд╝реАрдХрд░рдг рдореЗрдВрд╕реНрдЯреИрдВрдбрдЕрд▓реЛрди-рдореЛрдб рдХреЗ рд▓рд┐рдП рдкрд╛рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ:рдирддреАрдЬрддрди, рдлрд╝рд╛рдЗрд▓ рдХреА рд╕рд╛рдордЧреНрд░реА рдХреБрдЫ рдЗрд╕ рддрд░рд╣ рджрд┐рдЦрдиреА рдЪрд╛рд╣рд┐рдП:db.hostname=your_server_host_name
db.port=1521
db.servicename=your_db_servicename
migrate.apex.rest=false
rest.services.apex.add=false
rest.services.ords.add=true
schema.tablespace.default=SYSAUX
schema.tablespace.temp=TEMP
standalone.http.port=8888
standalone.static.images=
user.tablespace.default=USERS
user.tablespace.temp=TEMP
рдЖрд╡рд╢реНрдпрдХ рд╕реЗрдЯрд┐рдВрдЧреНрд╕ рдкреВрд░реА рд╣реЛ рдЧрдИ рд╣реИрдВ, рдЖрдк рд╕реНрдерд╛рдкрдирд╛ рдХреЗ рд╕рд╛рде рдЖрдЧреЗ рдмрдврд╝ рд╕рдХрддреЗ рд╣реИрдВредрд╕реНрдерд╛рдкрдирд╛
рд╣рдо OS рдореЗрдВ рдХрдорд╛рдВрдб рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд░рддреЗ рд╣реИрдВ:java -jar ords.war
рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ, рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдлрд╝рд╛рдЗрд▓ params
рдмрдЧрд▓ рдореЗрдВ рд╕реНрдерд┐рдд рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рд╕реЗ рд▓реА рдЧрдИ рд╣реИ ords.war
ред рдЖрдк рдкреИрд░рд╛рдореАрдЯрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдЗрд╕ рдлрд╝рд╛рдЗрд▓ рдХрд╛ рдкрде рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ --parameterFile
:java -jar ords.war --parameterFile /path/to/params/myown_params.properties
рд╕реНрдерд╛рдкрдирд╛ рд╕рдВрд╡рд╛рдж рдореЗрдВ, рдирд┐рдореНрди рдХрд╛рд░реНрдп рдХрд░реЗрдВ:- рд╣рдо рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдХреЛ рдмрдЪрд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдХреЗ рд▓рд┐рдП рдкрде рдХреЛ рдЗрдВрдЧрд┐рдд рдХрд░рддреЗ рд╣реИрдВ (рдЙрджрд╛рд╣рд░рдг рдореЗрдВ рдпрд╣ рдЗрдВрдЧрд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ
conf
- рдкрд░рд┐рдгрд╛рдорд╕реНрд╡рд░реВрдк, рдЙрд╕реА рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдореЗрдВ рдЬрд╣рд╛рдВ рдлрд╝рд╛рдЗрд▓ рд╕реНрдерд┐рдд рд╣реИ ords.war
, рдПрдХ рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдмрдирд╛рдИ рдЬрд╛рдПрдЧреА conf
рдЬрд┐рд╕рдореЗрдВ ORDS рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдХреЗ рд╕рд╛рде рдлрд╛рдЗрд▓реЗрдВ рдмрдирд╛рдИ рдЬрд╛рдПрдВрдЧреА)ред - рдЖрджреЗрд╢ рдХреЗ рдмрд╛рдж ORDS_PUBLIC_USER рдХреЗ рд▓рд┐рдП рдбреЗрдЯрд╛рдмреЗрд╕ рдкрд╛рд╕рд╡рд░реНрдб рджрд░реНрдЬ рдХрд░реЗрдВ, рд╣рдо рдпреЛрдЬрдирд╛ рдХреЗ рд▓рд┐рдП рдкрд╛рд╕рд╡рд░реНрдб рджрд░реНрдЬ рдХрд░рддреЗ рд╣реИрдВ
ORDS_PUBLIC_USER
ред рдЗрд╕ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЗ рддрд╣рдд, ORDS рдбреЗрдЯрд╛рдмреЗрд╕ рд╕реЗ рдХрдиреЗрдХреНрдЯ рд╣реЛрдЧрд╛ред - рдкреНрд░реЙрдореНрдкреНрдЯ рдПрдВрдЯрд░ 1 рдХреЗ рдмрд╛рдж рдпрджрд┐ рдЖрдк рдЗрд╕ рдЪрд░рдг рдХреЛ рдЫреЛрдбрд╝рдиреЗ рдХреЗ рд▓рд┐рдП PL / SQL рдЧреЗрдЯрд╡реЗ рдпрд╛ 2 рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ, рддреЛ рд╣рдо "2" рдХрд╛ рдЙрддреНрддрд░ рджреЗрддреЗ рд╣реИрдВ, рдХреНрдпреЛрдВрдХрд┐ рд╣рдо APEX рдХрд╛ рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ рдХрд░рдиреЗ рдЬрд╛ рд░рд╣реЗ рд╣реИрдВ рдФрд░ рд╣рдореЗрдВ рдЗрд╕рд╕реЗ рдорд╛рдЗрдЧреНрд░реЗрдЯ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИ
mod_plsql
ред - рдирд┐рд░реНрджреЗрд╢ 1 рджрд░реНрдЬ рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж рдпрджрд┐ рдЖрдк [1] рд╕реЗ рдмрд╛рд╣рд░ рдирд┐рдХрд▓рдиреЗ рдХреЗ рд▓рд┐рдП рд╕реНрдЯреИрдВрдбрдЕрд▓реЛрди рдореЛрдб рдпрд╛ 2 рдореЗрдВ рд╢реБрд░реВ рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ, рддреЛ рд╣рдо "1" рдХрд╛ рдЬрд╡рд╛рдм рджреЗрддреЗ рд╣реИрдВред
- рдирд┐рд░реНрджреЗрд╢ рдХреЗ рдмрд╛рдж 1 рджрд░реНрдЬ рдХрд░реЗрдВ рдпрджрд┐ рдПрдЪрдЯреАрдЯреАрдкреАрдПрд╕ [1] рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реБрдП HTTP рдпрд╛ 2 рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рддреЛ рд╣рдо 1 рдЙрддреНрддрд░ рджреЗрддреЗ рд╣реИрдВред
рд╕реНрдерд╛рдкрдирд╛ рд╕рдВрд╡рд╛рджD:\ords-19.2.0.199.1647>java -jar ords.war install
This Oracle REST Data Services instance has not yet been configured.
Please complete the following prompts
Enter the location to store configuration data: conf
Enter the database password for ORDS_PUBLIC_USER:
Confirm password:
03, 2019 2:47:49 PM oracle.dbtools.rt.config.setup.SchemaSetup getInstallOrUpgrade
WARNING: Failed to connect to user ORDS_PUBLIC_USER jdbc:oracle:thin:@//***YOUR_HOST_NAME.DOMAIN***:1521/***YOUR_SERVICE_NAME.DOMAIN***
Enter 1 if you want to use PL/SQL Gateway or 2 to skip this step.
If using Oracle Application Express or migrating from mod_plsql then you must enter 1 [1]:2
03, 2019 2:48:32 PM
INFO: reloaded pools: []
Enter 1 if you wish to start in standalone mode or 2 to exit [1]:
Enter 1 if using HTTP or 2 if using HTTPS [1]:
2019-09-03 14:48:49.754:INFO::main: Logging initialized @4276887ms to org.eclipse.jetty.util.log.StdErrLog
03, 2019 2:48:49 PM
INFO: HTTP and HTTP/2 cleartext listening on port: 8082
03, 2019 2:48:50 PM
INFO: Disabling document root because the specified folder does not exist: D:\ords-19.2.0.199.1647\conf\ords\standalone\doc_root
Exception in thread "main" java.lang.reflect.InvocationTargetException
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at java.lang.reflect.Method.invoke(Unknown Source)
at oracle.dbtools.jarcl.Entrypoint.invoke(Entrypoint.java:66)
at oracle.dbtools.jarcl.Entrypoint.main(Entrypoint.java:89)
Caused by: java.lang.OutOfMemoryError: Java heap space
at java.util.Arrays.copyOf(Unknown Source)
at java.lang.AbstractStringBuilder.ensureCapacityInternal(Unknown Source)
at java.lang.AbstractStringBuilder.append(Unknown Source)
at java.lang.StringBuilder.append(Unknown Source)
at java.lang.StringBuilder.append(Unknown Source)
at java.util.AbstractMap.toString(Unknown Source)
at java.lang.String.valueOf(Unknown Source)
at java.lang.StringBuilder.append(Unknown Source)
at oracle.dbtools.jarcl.zip.ZipIndex.toString(ZipIndex.java:166)
at java.lang.String.valueOf(Unknown Source)
at java.lang.StringBuilder.append(Unknown Source)
at oracle.dbtools.jarcl.JarClassLoader.toString(JarClassLoader.java:51)
at org.eclipse.jetty.server.ClassLoaderDump.dump(ClassLoaderDump.java:67)
at org.eclipse.jetty.util.component.Dumpable.dumpObjects(Dumpable.java:225)
at org.eclipse.jetty.util.component.ContainerLifeCycle.dumpObjects(ContainerLifeCycle.java:746)
at org.eclipse.jetty.server.handler.ContextHandler.dump(ContextHandler.java:259)
at org.eclipse.jetty.util.component.Dumpable.dumpObjects(Dumpable.java:162)
at org.eclipse.jetty.util.component.ContainerLifeCycle.dumpObjects(ContainerLifeCycle.java:746)
at org.eclipse.jetty.util.component.ContainerLifeCycle.dump(ContainerLifeCycle.java:701)
at org.eclipse.jetty.util.component.Dumpable.dump(Dumpable.java:62)
at org.eclipse.jetty.util.component.ContainerLifeCycle.dump(ContainerLifeCycle.java:684)
at oracle.dbtools.standalone.StandaloneConfiguration.start(StandaloneConfiguration.java:241)
at oracle.dbtools.standalone.Standalone.execute(Standalone.java:508)
at oracle.dbtools.cmdline.DefaultCommand.execute(DefaultCommand.java:137)
at oracle.dbtools.cmdline.Commands.execute(Commands.java:207)
at oracle.dbtools.cmdline.Commands.main(Commands.java:163)
at oracle.dbtools.cmdline.Commands.main(Commands.java:368)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at java.lang.reflect.Method.invoke(Unknown Source)
at oracle.dbtools.jarcl.Entrypoint.invoke(Entrypoint.java:66)
рдкрд░рд┐рдгрд╛рдорд╕реНрд╡рд░реВрдк, ORDS рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рд╡рд╛рд▓реА рдПрдХ рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдмрдирд╛рдИ рдЬрд╛рдПрдЧреА, рдФрд░ ORDS рдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧрд┐рддрд╛ рдпреЛрдЬрдирд╛рдПрдВ рдбреЗрдЯрд╛рдмреЗрд╕ рдореЗрдВ рджрд┐рдЦрд╛рдИ рджреЗрдВрдЧреАредрджреЗрдЦ рдпрд╣ рднреА: 5 рдорд┐рдирдЯ рдХреЗ рдЕрдВрджрд░ Oracle REST рдбреЗрдЯрд╛ рд╕реЗрд╡рд╛рдПрдБ 3.0.X рд╕реНрдерд╛рдкрд┐рдд рдХрд░реЗрдВ редрдкреНрд░рдХреНрд╖реЗрдкрдг
рд╕реНрдЯреИрдВрдбрдЕрд▓реЛрди рдореЛрдб рдореЗрдВ рд╢реБрд░реВ рдХрдорд╛рдВрдб рджреНрд╡рд╛рд░рд╛ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ:java -jar ords.war standalone
рд╕рдВрд╡рд╛рдж рд▓реЙрдиреНрдЪ рдХрд░реЗрдВD:\ords-19.2.0.199.1647>java -jar ords.war standalone
2019-09-03 15:52:45.825:INFO::main: Logging initialized @2079ms to org.eclipse.jetty.util.log.StdErrLog
03, 2019 3:52:45 PM
INFO: HTTP and HTTP/2 cleartext listening on port: 8082
03, 2019 3:52:45 PM
INFO: Disabling document root because the specified folder does not exist: D:\ords-19.2.0.199.1647\conf\ords\standalone\doc_root
2019-09-03 15:52:47.124:INFO:oejs.Server:main: jetty-9.4.z-SNAPSHOT; built: 2019-05-02T09:46:34.874Z; git: 14f32d50076f2b706f41a33066eb364d8492e199; jvm 1.8.0_221-b11
2019-09-03 15:52:47.179:INFO:oejs.session:main: DefaultSessionIdManager workerName=node0
2019-09-03 15:52:47.179:INFO:oejs.session:main: No SessionScavenger set, using defaults
2019-09-03 15:52:47.180:INFO:oejs.session:main: node0 Scavenging every 660000ms
03, 2019 3:52:48 PM
INFO: Configuration properties for: |apex|pu|
db.hostname=***YOUR_HOST_NAME.DOMAIN***
db.password=******
db.port=1521
db.servicename=***YOUR_SERVICE_NAME.DOMAIN***
db.username=ORDS_PUBLIC_USER
resource.templates.enabled=true
03, 2019 3:52:48 PM
WARNING: *** jdbc.MaxLimit in configuration |apex|pu| is using a value of 10, this setting may not be sized adequately for a production environment ***
03, 2019 3:52:48 PM
WARNING: *** jdbc.InitialLimit in configuration |apex|pu| is using a value of 3, this setting may not be sized adequately for a production environment ***
03, 2019 3:52:50 PM
INFO: Oracle REST Data Services initialized
Oracle REST Data Services version : 19.2.0.r1991647
Oracle REST Data Services server info: jetty/9.4.z-SNAPSHOT
2019-09-03 15:52:50.484:INFO:oejsh.ContextHandler:main: Started o.e.j.s.ServletContextHandler@d56d67{/ords,null,AVAILABLE}
2019-09-03 15:52:50.658:INFO:oejs.AbstractConnector:main: Started ServerConnector@12325ad{HTTP/1.1,[http/1.1, h2c]}{0.0.
0.0:8082}
2019-09-03 15:52:50.659:INFO:oejs.Server:main: Started @6914ms
рдЙрд╕рдХреЗ рдмрд╛рдж, ORDS рдЙрда рд░рд╣рд╛ рд╣реИ рдФрд░ рдЪрд▓ рд░рд╣рд╛ рд╣реИред рд╡реЗрдм рд╕реЗрд╡рд╛ рдХрд╛ рдкрддрд╛ http: // <hostname>: / ords / ... рд╣реЛрдЧрд╛, рдЬрд╣рд╛рдВ <hostname> ORDS рдЪрд▓рд╛рдиреЗ рд╡рд╛рд▓реЗ рдХрдВрдкреНрдпреВрдЯрд░ рдХрд╛ рдирд╛рдо рд╣реИ (рдЗрд╕реЗ рдбреЗрдЯрд╛рдмреЗрд╕ рд╕рд░реНрд╡рд░ рдирд╛рдо рд╕реЗ рдореЗрд▓ рдирд╣реАрдВ рдЦрд╛рддрд╛ рд╣реИ, рдЕрд░реНрдерд╛рдд ORDS рдХрд┐рд╕реА рдЕрдиреНрдп рд╣реЛрд╕реНрдЯ рдкрд░ рдЪрд▓рд╛рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ ), <рдкреЛрд░реНрдЯ> - ORDS рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдореЗрдВ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдкреЛрд░реНрдЯредрдпрджрд┐ рдЖрдк рдЪрд╛рд╣реЗрдВ, рддреЛ рдЖрдк рдУрдПрд╕ рд╢реБрд░реВ рд╣реЛрдиреЗ рдкрд░ рдУрдЖрд░рдбреАрдПрд╕ рдХреЛ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдк рд╕реЗ рдЪрд▓рд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдмрдирд╛ рд╕рдХрддреЗ рд╣реИрдВредрдПрдХреНрд╕реЗрд╕ рд╕реЗрдЯрд┐рдВрдЧ
рдФрд░ рдЕрдВрддрд┐рдо рдЪрд░рдг ACL рдХреЛ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд░рдирд╛ рд╣реИред рдЪрд░рдг рдореВрд▓ рдирд┐рд╡рд╛рд╕реА Oracle WS рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд╕рдорд╛рди рд╣реИрдВ редрдбреЗрдЯрд╛рдмреЗрд╕ рд╕реНрдХреАрдорд╛ рдмрдирд╛рдП рдЬрд╛рдиреЗ рдХреЗ рдмрд╛рдж рдЖрдкрдХреЛ рдЗрд╕ рдЪрд░рдг рдХреЛ рдкреВрд░рд╛ рдХрд░рдирд╛ рд╣реЛрдЧрд╛, рдЗрд╕рд▓рд┐рдП рдиреАрдЪреЗ рджрд┐рдП рдЧрдП рдЙрджрд╛рд╣рд░рдг рдЕрд▓рдЧ-рдЕрд▓рдЧ рдЗрдВрдЧрд┐рдд рдХрд░реЗрдВрдЧреЗ рдЬрдм рдЖрдкрдХреЛ рдЗрд╕ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдХреЛ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрдЧреАред рдЕрдм рддрдХ, рд╣рдо рдорд╛рди рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ рд╕рднреА рдкреНрд░рд╛рд░рдВрднрд┐рдХ рдЪрд░рдг рдкреВрд░реЗ рд╣реЛ рдЪреБрдХреЗ рд╣реИрдВ, рдФрд░ рдЙрджрд╛рд╣рд░рдгреЛрдВ рдХреЗ рд╕рд╛рде рдЖрдЧреЗ рдмрдврд╝реЗрдВредрдЙрджрд╛рд╣рд░рдг 1: POST рдЕрдиреБрд░реЛрдз рдХреЗ рд▓рд┐рдП рд╣реИрдВрдбрд▓рд░
рдПрдХ рдЙрджрд╛рд╣рд░рдг рдХреЗ рд░реВрдк рдореЗрдВ, рдЖрд░рдкреАрд╕реА-рд╕реНрдЯрд╛рдЗрд▓ рдЗрдВрдЯрд░реИрдХреНрд╢рди рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рд╡рд┐рдХрд▓реНрдк рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд░реЗрдВ, рдЕрд░реНрдерд╛рддреН, рд╣рдо рдПрдХ рд╡реЗрдм рд╕реЗрд╡рд╛ рд╡рд┐рдзрд┐ рдмрдирд╛рдПрдВрдЧреЗ, рдЬрд┐рд╕рдХреЗ рд╣реИрдВрдбрд▓рд░ рдПрдХ рдмреИрдЪ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рд╣реЛрдЧреАредрд╡рд╛рд╕реНрддрд╡ рдореЗрдВ, рдпрд╣ рдЗрд╕ рд╕рдВрд╕реНрдХрд░рдг рдореЗрдВ рдерд╛ рдХрд┐ рд╡рд┐рддрд░рдг рдиреЗрдЯрд╡рд░реНрдХ рдХреЗ рд▓рд┐рдП рд╣рдорд╛рд░реА рдкрд░рд┐рдпреЛрдЬрдирд╛ рдореЗрдВ рдУрдЖрд░рдбреАрдПрд╕ рдХреЗ рд╕рд╛рде рдХрд╛рдо рд▓рд╛рдЧреВ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛, рдФрд░ рдкрд░рд┐рдгрд╛рдо рдЗрд╕рдХреА рдЕрдкреЗрдХреНрд╖рд╛рдУрдВ рдХреЛ рдкреВрд░рд╛ рдХрд░рддрд╛ рдерд╛ред рдпрд╣ рд╡рд┐рднрд┐рдиреНрди рд╡реНрдпрд╛рд╡рд╕рд╛рдпрд┐рдХ рдкреНрд░рдХреНрд░рд┐рдпрд╛рдУрдВ рдХреЗ рд▓рд┐рдП рд╡реЗрдм рд╕реЗрд╡рд╛рдУрдВ рдХреЗ рдирдП рддрд░реАрдХреЛрдВ рдХреЛ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рддреНрд╡рд░рд┐рдд рдФрд░ рд╕рд╛рд░реНрд╡рднреМрдорд┐рдХ рддрд░реАрдХрд╛ рдирд┐рдХрд▓рд╛ - рд╕рд╛рдЗрдЯреЛрдВ рдХреЗ рд▓рд┐рдП рдЙрдкрдХрд░рдг рд╕реЗ рдПрдкреАрдЖрдИ рддрдХ рдХрд╛рдо рдХрд░рдиреЗ рд╕реЗредрдЬреИрд╕рд╛ рдХрд┐ рдКрдкрд░ рдмрддрд╛рдпрд╛ рдЧрдпрд╛ рд╣реИ, ORDS рд╕рдорд░реНрдерди SQL рдбреЗрд╡рд▓рдкрд░ (Oracle рджреНрд╡рд╛рд░рд╛ рд╡рд┐рдХрд╕рд┐рдд рдбреЗрдЯрд╛рдмреЗрд╕ IDE) рдореЗрдВ рднреА рд╢рд╛рдорд┐рд▓ рд╣реИред SQL рдбреЗрд╡рд▓рдкрд░ рдореЗрдВ, рд╡реЗрдм рд╕реЗрд╡рд╛рдПрдБ рдмрдирд╛рдирд╛ рд╕реАрдзреЗ рдореЗрдиреВ рдЖрдЗрдЯрдо рдпрд╛ рд╕рдВрджрд░реНрдн рдореЗрдиреВ рд╕реЗ рдЙрдкрд▓рдмреНрдз рд╣реИредрдЗрд╕ рдЖрд▓реЗрдЦ рдореЗрдВ, SQL рдбреЗрд╡рд▓рдкрд░ (рд╕рдВрд╕реНрдХрд░рдг 18) рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдЙрджрд╛рд╣рд░рдг рджрд┐рдП рдЧрдП рд╣реИрдВ, рд▓реЗрдХрд┐рди IDE рдореЗрдВ рдХреНрд░рд┐рдпрд╛рдУрдВ рдХреЗ рдкрд░рд┐рдгрд╛рдорд╕реНрд╡рд░реВрдк рдбреЗрдЯрд╛рдмреЗрд╕ рдореЗрдВ рдирд┐рд╖реНрдкрд╛рджрд┐рдд PL / SQL рдХреЛрдб рднреА рд╢рд╛рдорд┐рд▓ рд╣реИредрдбреЗрдЯрд╛рдмреЗрд╕ рдХрд╛ рд╕рдВрд╕реНрдХрд░рдг рдЬрд┐рд╕ рдкрд░ рдкреНрд░рдпреЛрдЧ рдХрд┐рдП рдЧрдП рдереЗ:SQL> SELECT v.BANNER FROM v$version v;
BANNER
Oracle DATABASE 12c Enterprise Edition Release 12.2.0.1.0 - 64bit Production
PL/SQL Release 12.2.0.1.0 - Production
CORE 12.2.0.1.0 Production
TNS FOR Linux: Version 12.2.0.1.0 - Production
NLSRTL Version 12.2.0.1.0 - Production
WS рдХреЗ рд▓рд┐рдП рдПрдХ рдкрд░реАрдХреНрд╖рдг рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдмрдирд╛рдирд╛
рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рд╣рдореЗрдВ рдлрд┐рд░ рд╕реЗ рдПрдХ рдирдИ рдпреЛрдЬрдирд╛ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ - рдЗрд╕реЗ рдмрдирд╛рдПрдВ:CREATE USER WS_TEST IDENTIFIED BY ws_test QUOTA 200M ON USERS;
GRANT CREATE SESSION, RESOURCE TO ws_test;
рдПрдХ рдбреЗрдЯрд╛рдмреЗрд╕ рд╕реНрдХреАрдорд╛ рдХреА рд╕реНрдерд╛рдкрдирд╛
рдЖрд░реЗрдЦ рдмрдирдиреЗ рдХреЗ рдмрд╛рдж, рдЗрд╕реЗ ORDS рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рд╕реБрд▓рдн рдмрдирд╛рдирд╛ рдЖрд╡рд╢реНрдпрдХ рд╣реИредрдЗрд╕рдХреЗ рд▓рд┐рдП:- SQL рдбреЗрд╡рд▓рдкрд░ рдореЗрдВ, рдХреЗ рд▓рд┐рдП рдПрдХ рдХрдиреЗрдХреНрд╢рди рдмрдирд╛рдПрдБ
WS_TEST
ред - рдХрдиреЗрдХреНрд╢рди рдХреА рд╕реВрдЪреА рдореЗрдВ, рдирдП рдХрдиреЗрдХреНрд╢рди рдХреЗ рд▓рд┐рдП рд╕рдВрджрд░реНрдн рдореЗрдиреВ рдкрд░ рдХреЙрд▓ рдХрд░реЗрдВред рдмрд╛рдХреА рд╕реЗрд╡рд╛рдПрдБ рдЪреБрдиреЗрдВ тЖТ REST рд╕реЗрд╡рд╛рдПрдБ рд╕рдХреНрд╖рдо рдХрд░реЗрдВ ... :

- рд╕рдВрд╡рд╛рдж рдореЗрдВ, рд╕реНрдХреАрдорд╛ рд╕рдХреНрд╖рдо рдХрд░реЗрдВ рдХреЗ рдЖрдЧреЗ рд╕реНрдерд┐рдд рдмреЙрдХреНрд╕ рдХреЛ рдЪреЗрдХ рдХрд░реЗрдВ ( рдпрджрд┐ рдЖрдк рдпреЛрдЬрдирд╛ рдХреЗ рдирд╛рдо рдХреЗ рдмрдЬрд╛рдп URI рдореЗрдВ рдЕрдиреНрдп рдкрд╛рда рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ рддреЛ рдЖрдк " рд╕реНрдХреАрдорд╛ рдЙрд░реНрдл " рдкреИрд░рд╛рдореАрдЯрд░ рдмрджрд▓ рд╕рдХрддреЗ рд╣реИрдВ
ws_test
):

- "рдЕрдЧрд▓рд╛" рдкрд░ рдХреНрд▓рд┐рдХ рдХрд░рдХреЗ , рд╣рдо рдкреАрдПрд▓ / рдПрд╕рдХреНрдпреВрдПрд▓ рдХреЛрдб рджреЗрдЦреЗрдВрдЧреЗ рдЬреЛ рдЕрдВрддрддрдГ рдбреЗрдЯрд╛рдмреЗрд╕ рдореЗрдВ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ (рдФрд░ рдЬрд┐рд╕реЗ рдЖрдк рдЖрдИрдбреАрдИ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдП рдмрд┐рдирд╛ рдЦреБрдж рд▓рд┐рдЦ рд╕рдХрддреЗ рд╣реИрдВ):

рд▓рд┐рд╕реНрдЯрд┐рдВрдЧ:BEGIN
ORDS.ENABLE_SCHEMA( p_enabled => TRUE
, p_schema => 'WS_TEST'
, p_url_mapping_type => 'BASE_PATH'
, p_url_mapping_pattern => 'ws_test'
, p_auto_rest_auth => FALSE);
COMMIT;
END;
/
рдПрдХ рдореЙрдбреНрдпреВрд▓ рдФрд░ рдЯреЗрдореНрдкрд▓реЗрдЯ рдмрдирд╛рдирд╛
рдЕрдЧрд▓рд╛, рдЖрдкрдХреЛ рд╕рдВрд╕рд╛рдзрди рдХреЗ рд▓рд┐рдП рдПрдХ рдореЙрдбреНрдпреВрд▓ рдФрд░ рдЯреЗрдореНрдкрд▓реЗрдЯ рдмрдирд╛рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИредрдПрдХ рдореЙрдбреНрдпреВрд▓ рдПрдХ рд╕рдВрд░рдЪрдирд╛рддреНрдордХ рдЗрдХрд╛рдИ рд╣реИ рдЬреЛ рдЖрдкрдХреЛ рдХрдИ рддрд╛рд░реНрдХрд┐рдХ рд░реВрдк рд╕реЗ рд╕рдВрдмрдВрдзрд┐рдд рд╕рдВрд╕рд╛рдзрди рдЯреЗрдореНрдкрд▓реЗрдЯреНрд╕ рдХреЛ рд╕рдореВрд╣рд┐рдд рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИредрдПрдХ рдЯреЗрдореНрдкреНрд▓реЗрдЯ рдПрдХ рд╡рд┐рд╢рд┐рд╖реНрдЯ рд╡реЗрдм рд╕реЗрд╡рд╛ рд╣реИ рдЬреЛ рдХрд┐рд╕реА рд╕рдВрд╕рд╛рдзрди рдХреЗ рд▓рд┐рдП рд╡рд┐рд╢рд┐рд╖реНрдЯ рд╕реЗрдЯ рдкреНрд░рджрд╛рди рдХрд░рддреА рд╣реИредрдкрд░ рд╕реНрд░реЛрдд :рд╕рдВрд╕рд╛рдзрди рдореЙрдбреНрдпреВрд▓: рдПрдХ рд╕рдВрдЧрдардирд╛рддреНрдордХ рдЗрдХрд╛рдИ рд╕рдореВрд╣ рд╕рдВрдмрдВрдзрд┐рдд рд╕рдВрд╕рд╛рдзрди рдЯреЗрдореНрдкрд▓реЗрдЯреНрд╕ рдХреЗ рд▓рд┐рдП рдкреНрд░рдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред
рд╕рдВрд╕рд╛рдзрди рдЯреЗрдореНрдкреНрд▓реЗрдЯ: рдПрдХ рд╡реНрдпрдХреНрддрд┐рдЧрдд рдкреНрд░рддрд┐рд╖реНрдард╛ рд╡рд╛рд▓реА рд╕реЗрд╡рд╛ рдЬреЛ URI (рдпреВрдирд┐рд╡рд░реНрд╕рд▓ рд░рд┐рд╕реЛрд░реНрд╕ рдЖрдЗрдбреЗрдВрдЯрд┐рдлрд╝рд╛рдпрд░) рдХреЗ рдХреБрдЫ рд╕реЗрдЯ рдХреЗ рд▓рд┐рдП рд╕реЗрд╡рд╛ рдЕрдиреБрд░реЛрдз рдХрд░рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рд╣реИред рдпреВрдЖрд░рдЖрдИ рдХрд╛ рд╕реЗрдЯ рд╕рдВрд╕рд╛рдзрди рдЯреЗрдореНрдкрд▓реЗрдЯ рдХреЗ рдпреВрдЖрд░рдЖрдИ рдкреИрдЯрд░реНрди рджреНрд╡рд╛рд░рд╛ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИредрдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдСрдирд▓рд╛рдЗрди рд╕реНрдЯреЛрд░ рдХреЗ рд▓рд┐рдП, рдПрдХ рдореЙрдбреНрдпреВрд▓ рдХрд╣рд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИshop
- рдЗрд╕ рдореЙрдбреНрдпреВрд▓ рдореЗрдВ рд╕реНрдЯреЛрд░ рдХреЗ рд╕рднреА рдПрдкреАрдЖрдИ рд╕рдВрдпреБрдХреНрдд рд╣реЛрдВрдЧреЗред рдЯреЗрдореНрдкрд▓реЗрдЯ рд╡рд┐рд╢рд┐рд╖реНрдЯ рд╕рдВрд╕рд╛рдзрди рд╣реЛ рд╕рдХрддреЗ рд╣реИрдВ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдПрдХ рдСрд░реНрдбрд░ (рдЯреЗрдореНрдкрд▓реЗрдЯ order
), рдЙрддреНрдкрд╛рдж рд╕реВрдЪреА (рдЯреЗрдореНрдкрд▓реЗрдЯ item
), рднреБрдЧрддрд╛рди (рдЯреЗрдореНрдкрд▓реЗрдЯ payment
), рдЖрджрд┐редрдореЙрдбреНрдпреВрд▓ рдФрд░ рдЯреЗрдореНрдкрд▓реЗрдЯ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдкрдХреЛ рдЗрди рдЪрд░рдгреЛрдВ рдХрд╛ рдкрд╛рд▓рди рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ:- рдСрдмреНрдЬреЗрдХреНрдЯ рдЯреНрд░реА рдореЗрдВ, REST рдбреЗрдЯрд╛ рд╕реЗрд╡рд╛ рдЕрдиреБрднрд╛рдЧ рдЦреЛрд▓реЗрдВ, рдореЙрдбреНрдпреВрд▓ рдЕрдиреБрднрд╛рдЧ рдореЗрдВ рд╕рдВрджрд░реНрдн рдореЗрдиреВ рдкрд░ рдХреЙрд▓ рдХрд░реЗрдВ , рдирдпрд╛ рдореЙрдбреНрдпреВрд▓ рдЪреБрдиреЗрдВ ... :

- рдореЙрдбреНрдпреВрд▓ рдирд┐рд░реНрдорд╛рдг рд╕рдВрд╡рд╛рдж рдореЗрдВ, рдореЙрдбреНрдпреВрд▓ рдирд╛рдо рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░реЗрдВ (
shop
), рдЙрдкрд╕рд░реНрдЧ URI (рдпрд╣ рднреА рдЗрдВрдЧрд┐рдд рдХрд░реЗрдВ shop
- рдиреАрдЪреЗ рджрд┐рдП рдЧрдП рдЙрджрд╛рд╣рд░рдг рдореЗрдВ рд╣рдо рддреБрд░рдВрдд рджреЗрдЦрддреЗ рд╣реИрдВ рдХрд┐ рд╡реЗрдм рд╕реЗрд╡рд╛ рдкрддрд╛ рдЯреЗрдореНрдкрд▓реЗрдЯ рдХреНрдпрд╛ рд╣реЛрдЧрд╛), рдкреНрд░рдХрд╛рд╢рд┐рдд рдХреЗ рд╕рд╛рдордиреЗ рдПрдХ рдкрдВрдЬрд╛ рдбрд╛рд▓реЗрдВ , "рдЕрдЧрд▓рд╛>" рдкрд░ рдХреНрд▓рд┐рдХ рдХрд░реЗрдВ :

- рдЕрдЧрд▓реЗ рд╕рдВрд╡рд╛рдж рдореЗрдВ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП
order
, рдЯреЗрдореНрдкрд▓реЗрдЯ рдХрд╛ рдирд╛рдо рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░реЗрдВ , рдФрд░ рдлрд┐рд░ "рдЕрдЧрд▓рд╛>" рдкрд░ рдХреНрд▓рд┐рдХ рдХрд░реЗрдВ ред
рдЕрдВрддрд┐рдо рд╕рдВрд╡рд╛рдж рдореЗрдВ, рд╣рдо рдореЙрдбреНрдпреВрд▓ рдФрд░ рдЯреЗрдореНрдкрд▓реЗрдЯ рдХреЗ рд╕рднреА рджрд░реНрдЬ рдХрд┐рдП рдЧрдП рдорд╛рдкрджрдВрдбреЛрдВ рдХреЛ рджреЗрдЦрддреЗ рд╣реИрдВред SQL рдЯреИрдм рдкрд░, рдЖрдк PL / SQL рдХреЛрдб рдХреЛ рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ рдЬрд┐рд╕реЗ рдбреЗрдЯрд╛рдмреЗрд╕ рдореЗрдВ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ рдЬрдм рдЖрдк рд╕рдорд╛рдкреНрдд рдкрд░ рдХреНрд▓рд┐рдХ рдХрд░реЗрдВрдЧреЗ :

рдПрдХ рдореЙрдбреНрдпреВрд▓ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП shop
, рдЖрдк рдЕрдзрд┐рдХ рдкреИрдЯрд░реНрди рдЬреЛрдбрд╝ рд╕рдХрддреЗ рд╣реИрдВ - рдСрдмреНрдЬреЗрдХреНрдЯ рдЯреНрд░реА рдореЗрдВ рднреА, рд╕рдВрджрд░реНрдн рдореЗрдиреВ рдФрд░ рдЯреЗрдореНрдкрд▓реЗрдЯ рдЬреЛрдбрд╝реЗрдВ ... рдХрд╛ рдЪрдпрди рдХрд░рддреЗ рд╣реБрдП редрдореЙрдбреНрдпреВрд▓ рдФрд░ рдЯреЗрдореНрдкрд▓реЗрдЯ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдХреЛрдб рд╕реВрдЪреАрдХрд░рдгBEGIN
ORDS.DEFINE_MODULE( p_module_name => 'shop'
, p_base_path => 'shop'
, p_items_per_page => 25
, p_status => 'PUBLISHED'
, p_comments => NULL);
ORDS.DEFINE_TEMPLATE( p_module_name => 'shop'
, p_pattern => 'order'
, p_priority => 0
, p_etag_type => 'HASH'
, p_etag_query => NULL
, p_comments => NULL);
COMMIT;
END;
/
HTTP рд░рд┐рдХреНрд╡реЗрд╕реНрдЯ рд╣реИрдВрдбрд▓рд░ рдмрдирд╛рдирд╛
рдЕрдм рд╣рдореЗрдВ рдЕрдкрдиреА рд╕реЗрд╡рд╛ рдХреЗ рд▓рд┐рдП рдПрдХ HTTP рдЕрдиреБрд░реЛрдз рд╣реИрдВрдбрд▓рд░ рдмрдирд╛рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИредрд╕рдмрд╕реЗ рдкрд╣рд▓реЗ, рд╣рдореЗрдВ рдбреЗрдЯрд╛рдмреЗрд╕ рдСрдмреНрдЬреЗрдХреНрдЯ рдмрдирд╛рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ рдЬрд┐рд╕рдореЗрдВ рдЕрдиреБрд░реЛрдз рдкреНрд░рд╕рдВрд╕реНрдХрд░рдг рддрд░реНрдХ рд╢рд╛рдорд┐рд▓ рд╣реЛрдВрдЧреЗредрд╣рдореЗрдВ рд▓реЙрдЧрд┐рдВрдЧ рдХреЗ рд▓рд┐рдП рдПрдХ рдЯреЗрдмрд▓ рдЪрд╛рд╣рд┐рдП рдФрд░ рдПрдХ рдкреИрдХреЗрдЬ рдЬрд┐рд╕рдореЗрдВ рдПрдХ рд╣реИрдВрдбрд▓рд░ рдХреЛрдб рд╣реЛрдЧрд╛редрд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдПрдХ рддрд╛рд▓рд┐рдХрд╛ рдмрдирд╛рдПрдВ:CREATE TABLE T_WS_LOG
(
id_log NUMBER GENERATED ALWAYS AS IDENTITY,
message VARCHAR2(2000),
request_header VARCHAR2(2000),
request_body CLOB,
response_header VARCHAR2(2000),
response_body CLOB,
dtz_log TIMESTAMP(6) WITH TIME ZONE DEFAULT SYSTIMESTAMP
);
COMMENT ON TABLE T_WS_LOG IS ' HTTP- (ORDS)';
COMMENT ON COLUMN T_WS_LOG.id_log IS '';
COMMENT ON COLUMN T_WS_LOG.message IS ' ';
COMMENT ON COLUMN T_WS_LOG.request_header IS ' ';
COMMENT ON COLUMN T_WS_LOG.request_body IS ' ';
COMMENT ON COLUMN T_WS_LOG.response_header IS ' ';
COMMENT ON COLUMN T_WS_LOG.response_body IS ' ';
COMMENT ON COLUMN T_WS_LOG.dtz_log IS '/ ';
ALTER TABLE T_WS_LOG ADD CONSTRAINT PK_T_WS_LOG PRIMARY KEY (ID_LOG) USING INDEX;
рдПрдХ рдкреИрдХреЗрдЬ рдмрдирд╛рдПрдБ:CREATE OR REPLACE PACKAGE PK_ORDS_API IS
FUNCTION blob2clob
( a_blob BLOB
, a_from_charset VARCHAR2 := 'AMERICAN_AMERICA.AL32UTF8'
, a_to_charset VARCHAR2 := 'AMERICAN_AMERICA.AL32UTF8'
) RETURN CLOB;
PROCEDURE process_request
( a_request CLOB
);
END PK_ORDS_API;
/
CREATE OR REPLACE PACKAGE BODY PK_ORDS_API IS
FUNCTION blob2clob
( a_blob BLOB
, a_from_charset VARCHAR2 := 'AMERICAN_AMERICA.AL32UTF8'
, a_to_charset VARCHAR2 := 'AMERICAN_AMERICA.AL32UTF8'
) RETURN CLOB
AS
l_clob CLOB;
l_amount NUMBER := 2000;
l_offset NUMBER := 1;
l_buffer VARCHAR2(32767);
l_length PLS_INTEGER := dbms_lob.getlength(a_blob);
BEGIN
dbms_lob.createtemporary(l_clob, TRUE);
dbms_lob.OPEN(l_clob, dbms_lob.lob_readwrite);
WHILE l_offset <= l_length LOOP
l_buffer := UTL_RAW.cast_to_varchar2(UTL_RAW.convert( r => dbms_lob.substr(a_blob, l_amount, l_offset)
, from_charset => a_from_charset
, to_charset => a_to_charset));
IF LENGTH(l_buffer) > 0 THEN
dbms_lob.writeappend(l_clob, LENGTH(l_buffer), l_buffer);
END IF;
l_offset := l_offset + l_amount;
EXIT WHEN l_offset > l_length;
END LOOP;
RETURN l_clob;
END blob2clob;
PROCEDURE process_request
( a_request CLOB
)
AS
TYPE TStringHash IS TABLE OF VARCHAR2(256) INDEX BY VARCHAR2(256);
lh_hdr TStringHash;
l_hdr VARCHAR2(256);
l_resp CLOB;
l_response_status INTEGER := 200;
l_ccontent_type VARCHAR2(64) := 'application/json';
l_in_headers VARCHAR2(32767);
BEGIN
lh_hdr('SERVER_SOFTWARE') := OWA_UTIL.get_cgi_env('SERVER_SOFTWARE');
lh_hdr('SERVER_NAME') := OWA_UTIL.get_cgi_env('SERVER_NAME');
lh_hdr('GATEWAY_INTERFACE') := OWA_UTIL.get_cgi_env('GATEWAY_INTERFACE');
lh_hdr('SERVER_PROTOCOL') := OWA_UTIL.get_cgi_env('SERVER_PROTOCOL');
lh_hdr('SERVER_PORT') := OWA_UTIL.get_cgi_env('SERVER_PORT');
lh_hdr('REQUEST_METHOD') := OWA_UTIL.get_cgi_env('REQUEST_METHOD');
lh_hdr('PATH_INFO') := OWA_UTIL.get_cgi_env('PATH_INFO');
lh_hdr('PATH_TRANSLATED') := OWA_UTIL.get_cgi_env('PATH_TRANSLATED');
lh_hdr('SCRIPT_NAME') := OWA_UTIL.get_cgi_env('SCRIPT_NAME');
lh_hdr('QUERY_STRING') := OWA_UTIL.get_cgi_env('QUERY_STRING');
lh_hdr('REMOTE_HOST') := OWA_UTIL.get_cgi_env('REMOTE_HOST');
lh_hdr('REMOTE_ADDR') := OWA_UTIL.get_cgi_env('REMOTE_ADDR');
lh_hdr('AUTH_TYPE') := OWA_UTIL.get_cgi_env('AUTH_TYPE');
lh_hdr('REMOTE_USER') := OWA_UTIL.get_cgi_env('REMOTE_USER');
lh_hdr('REMOTE_IDENT') := OWA_UTIL.get_cgi_env('REMOTE_IDENT');
lh_hdr('CONTENT-TYPE') := OWA_UTIL.get_cgi_env('CONTENT-TYPE');
lh_hdr('CONTENT-LENGTH') := OWA_UTIL.get_cgi_env('CONTENT-LENGTH');
lh_hdr('HTTP_ACCEPT') := OWA_UTIL.get_cgi_env('HTTP_ACCEPT');
lh_hdr('HTTP_ACCEPT_LANGUAGE') := OWA_UTIL.get_cgi_env('HTTP_ACCEPT_LANGUAGE');
lh_hdr('HTTP_USER_AGENT') := OWA_UTIL.get_cgi_env('HTTP_USER_AGENT');
lh_hdr('HTTP_COOKIE') := OWA_UTIL.get_cgi_env('HTTP_COOKIE');
l_hdr := lh_hdr.FIRST;
WHILE l_hdr IS NOT NULL LOOP
IF lh_hdr(l_hdr) IS NOT NULL THEN
l_in_headers := l_in_headers||CHR(10)||l_hdr||': '||lh_hdr(l_hdr);
END IF;
l_hdr := lh_hdr.NEXT(l_hdr);
END LOOP;
l_resp := '{ "result" : "success" }';
INSERT INTO t_ws_log
( message
, request_header
, request_body
, response_header
, response_body)
VALUES
( NULL
, l_in_headers
, a_request
, 'Content-Type: '||l_ccontent_type
, l_resp
);
OWA_UTIL.STATUS_LINE(nstatus => l_response_status, bclose_header => FALSE);
OWA_UTIL.MIME_HEADER(ccontent_type => l_ccontent_type, bclose_header => FALSE);
OWA_UTIL.HTTP_HEADER_CLOSE();
htp.p(l_resp);
END process_request;
END PK_ORDS_API;
/
рдЕрдм рдмрдирд╛рдП рдЧрдП рдЯреЗрдореНрдкрд▓реЗрдЯ рдХреЗ рд▓рд┐рдП рдЖрдкрдХреЛ рдПрдХ рд╣реИрдВрдбрд▓рд░ рдЬреЛрдбрд╝рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред HTTP рд╡рд┐рдзрд┐ рдХреЗ рд▓рд┐рдП рдПрдХ рд╣реИрдВрдбрд▓рд░ рдЬреЛрдбрд╝реЗрдВ POST
редрдРрд╕рд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдирд┐рдореНрди рдЪрд░рдгреЛрдВ рдХрд╛ рдкрд╛рд▓рди рдХрд░реЗрдВ:- рд╣рдо рдЯреЗрдореНрдкрд▓реЗрдЯ рдХреЗ рд▓рд┐рдП рд╕рдВрджрд░реНрдн рдореЗрдиреВ рдХреЛ рдХреЙрд▓ рдХрд░рддреЗ рд╣реИрдВ, рд╣реИрдВрдбрд▓рд░ рдЬреЛрдбрд╝реЗрдВ рдХрд╛ рдЪрдпрди рдХрд░реЗрдВ рдФрд░ рдлрд┐рд░ HTTP рд╡рд┐рдзрд┐ рдЪреБрдиреЗрдВ:

- . SQL Worksheet PL/SQL-, HTTP-
POST
. , process_request
. , bind- :body
тАФ ORDS, ( BLOB). . :body_text
, CLOB. , , , ORDS . :body_text
, ┬л┬╗ . :body
, CLOB . , :

- Save REST Handler тАФ .
POST-:
DECLARE
l_blob BLOB := :body;
BEGIN
PK_ORDS_API.process_request(a_request => PK_ORDS_API.blob2clob(l_blob));
EXCEPTION
WHEN OTHERS THEN
OWA_UTIL.STATUS_LINE(nstatus => 500, bclose_header => FALSE);
OWA_UTIL.MIME_HEADER(ccontent_type => 'application/json');
htp.p('{ "result" : "error", "message" : "'||SQLERRM||'" }');
END;
рдпрджрд┐ рдЖрд╡рд╢реНрдпрдХ рд╣реЛ, рддреЛ рдЖрдк рд╣реИрдВрдбрд▓рд░ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП PL / SQL рдХреЛрдб рдкреНрд░рд╛рдкреНрдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдРрд╕рд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, ORDS рдореЙрдбреНрдпреВрд▓ рдХреЗ рд╕рдВрджрд░реНрдн рдореЗрдиреВ рдореЗрдВ, REST рдкрд░рд┐рднрд╛рд╖рд╛ рдХрд╛ рдЪрдпрди рдХрд░реЗрдВ рдФрд░ рдлрд┐рд░ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░реЗрдВ рдХрд┐ рдореЙрдбреНрдпреВрд▓ рдирд┐рд░реНрдорд╛рдг рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХрд╛ рдЙрддреНрдкрд╛рджрди рдХрд╣рд╛рдВ рдХрд░реЗрдВ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдХреНрд▓рд┐рдкрдмреЛрд░реНрдб рдкрд░:

рдореЙрдбреНрдпреВрд▓ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдкрд░рд┐рдгрд╛рдореА рдХреЛрдб
BEGIN
ORDS.ENABLE_SCHEMA(
p_enabled => TRUE,
p_schema => 'WS_TEST',
p_url_mapping_type => 'BASE_PATH',
p_url_mapping_pattern => 'ws_test',
p_auto_rest_auth => TRUE);
ORDS.DEFINE_MODULE(
p_module_name => 'shop',
p_base_path => '/shop/',
p_items_per_page => 25,
p_status => 'PUBLISHED',
p_comments => NULL);
ORDS.DEFINE_TEMPLATE(
p_module_name => 'shop',
p_pattern => 'order',
p_priority => 0,
p_etag_type => 'HASH',
p_etag_query => NULL,
p_comments => NULL);
ORDS.DEFINE_HANDLER(
p_module_name => 'shop',
p_pattern => 'order',
p_method => 'POST',
p_source_type => 'plsql/block',
p_items_per_page => 0,
p_mimes_allowed => '',
p_comments => NULL,
p_source =>
'DECLARE
l_blob BLOB := :body;
BEGIN
PK_ORDS_API.process_request(a_request => PK_ORDS_API.blob2clob(l_blob));
EXCEPTION
WHEN OTHERS THEN
OWA_UTIL.STATUS_LINE(nstatus => 500, bclose_header => FALSE);
OWA_UTIL.MIME_HEADER(ccontent_type => ''application/json'');
htp.p(''{ "result" : "error", "message" : "''||SQLERRM||''" }'');
END;'
);
COMMIT;
END;
рдзреНрдпрд╛рди рджреЗрдВ: рдпрджрд┐ рдЖрдк рдореЙрдбреНрдпреВрд▓ рдирд┐рд░реНрдорд╛рдг рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХреЛ ORDS.DEFINE_MODULE
рдлрд┐рд░ рд╕реЗ рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рдЗрд╕ рдореЙрдбреНрдпреВрд▓ рдХреЗ рд╕рднреА рдЯреЗрдореНрдкрд▓реЗрдЯ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдк рд╕реЗ рд╣рдЯрд╛ рджрд┐рдП рдЬрд╛рдПрдВрдЧреЗ, рдФрд░ рдЗрд╕ рдмрд╛рд░реЗ рдореЗрдВ рдХреЛрдИ рдЪреЗрддрд╛рд╡рдиреА рдирд╣реАрдВ рд╣реЛрдЧреА!рдХреЙрд▓ рдЙрджрд╛рд╣рд░рдг
рдпрд╣ рд╡рд╣ рдЬрдЧрд╣ рд╣реИ рдЬрд╣рд╛рдБ рд╣рдорд╛рд░реА рд╡реЗрдм рд╕реЗрд╡рд╛ рддреИрдпрд╛рд░ рд╣реИред рдпрд╣ рдЕрдкрдиреЗ рдХрд╛рдо рдХреА рдЬрд╛рдБрдЪ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдмрдиреА рд╣реБрдИ рд╣реИредрдЬрд╛рдВрдЪ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рд╣рдо рдЕрдиреБрд░реЛрдз рдХреЛ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд░рддреЗ рд╣реИрдВ:POST http://****:8888/ords/ws_test/shop/order HTTP/1.1
Accept-Encoding: gzip,deflate
Content-Type: application/json
Content-Length: 22
Host: ****:8888
Connection: Keep-Alive
User-Agent: Apache-HttpClient/4.1.1 (java 1.5)
{ "message" : "test" }
рдЬрд╡рд╛рдм рдореЗрдВ, рд╣рдореЗрдВ рдорд┐рд▓рддрд╛ рд╣реИ:HTTP/1.1 200 OK
Date: Wed, 23 Oct 2019 16:54:53 GMT
Content-Type: application/json
Transfer-Encoding: chunked
{ "result" : "success" }
рд╡рд┐рдзрд┐ рдирд┐рд╖реНрдкрд╛рджрди рдХрд╛ рдкрд░рд┐рдгрд╛рдо рд▓реЙрдЧ рдЯреЗрдмрд▓ рдореЗрдВ рдЕрдиреБрд░реЛрдз рдФрд░ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдХреЗ рдирд┐рдХрд╛рдп рдХреЗ рд╕рд╛рде рдПрдХ рд░рд┐рдХреЙрд░реНрдб рд╣реИ:
рдЬреИрд╕рд╛ рдХрд┐ рдЖрдк рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ, рднреЗрдЬрд╛ рдЧрдпрд╛ HTTP рдЕрдиреБрд░реЛрдз рд╕рдлрд▓рддрд╛рдкреВрд░реНрд╡рдХ рдкреИрдХреЗрдЯ рд╕реЗ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рджреНрд╡рд╛рд░рд╛ рд╕рдВрд╕рд╛рдзрд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛редрдЕрдиреБрд░реЛрдз рд╕реЗ рдкреИрд░рд╛рдореАрдЯрд░
рдКрдкрд░, рд╣рдордиреЗ рдкрд╣рд▓реЗ рд╣реА рдПрдХ рд╕рд╛рдзрд╛рд░рдг рд╡реЗрдм рд╕реЗрд╡рд╛ рдХрд╛ рдкрд░рд┐рдгрд╛рдо рджреЗрдЦрд╛ рд╣реИред рдЕрдм рд╣рдо рдЕрдиреБрд░реЛрдз рдореЗрдВ рдЕрддрд┐рд░рд┐рдХреНрдд рдкреИрд░рд╛рдореАрдЯрд░ рдЬреЛрдбрд╝рдХрд░ рдХрд╛рд░реНрдп рдХреЛ рдереЛрдбрд╝рд╛ рдЬрдЯрд┐рд▓ рдХрд░рддреЗ рд╣реИрдВредрдкреИрд░рд╛рдореАрдЯрд░ рдкрд╛рд╕ рдХрд░рдиреЗ рдХреЗ рджреЛ рддрд░реАрдХреЗ рд╣реИрдВ:Via URLред рдкреИрд░рд╛рдореАрдЯрд░ рдорд╛рдирдХ рд░реВрдк рдореЗрдВ URL рдореЗрдВ рд╕реЗрдЯ рдХрд┐рдП рдЧрдП рд╣реИрдВ:http://...URI...?p1=val1&p2=val2
рд╡рд╛рдпрд╛ рд╣реЗрдбрд░ред рдкреИрд░рд╛рдореАрдЯрд░ рдЕрдиреБрд░реЛрдз рд╢реАрд░реНрд╖рд▓реЗрдЦ рдореЗрдВ рд╕реЗрдЯ рдХрд┐рдП рдЧрдП рд╣реИрдВ рдЬреИрд╕рд╛ p1: val1
рдХрд┐ рдЕрдиреБрд░реЛрдз рд╣реИрдВрдбрд▓рд░ рдореЗрдВ ORDS рдореЗрдВ, рдорд╛рдкрджрдВрдбреЛрдВ рдХреЛ рдмрд╛рдЗрдВрдб рдЪрд░ рдХреЗ рд░реВрдк рдореЗрдВ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИредрд╣рдо рдкрд┐рдЫрд▓реЗ рдЙрджрд╛рд╣рд░рдг рдореЗрдВ рджреЛ рдкреИрд░рд╛рдореАрдЯрд░ рдЬреЛрдбрд╝рддреЗ рд╣реИрдВ: prm1
- URI prm2
рдореЗрдВ рдкреИрд░рд╛рдореАрдЯрд░ , - рдЕрдиреБрд░реЛрдз рд╣реИрдбрд░ рдореЗрдВ рдкреИрд░рд╛рдореАрдЯрд░редрдЗрди рдорд╛рдкрджрдВрдбреЛрдВ рдХреЛ рд╕рдВрд╕рд╛рдзрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, PK_ORDS_API.process_request:
рд╣рдо рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХреЛ рдЬреЛрдбрд╝рддреЗ рд╣реИрдВ, рдорд╛рдкрджрдВрдбреЛрдВ рдХреЛ рдЬреЛрдбрд╝рддреЗ рд╣реИрдВ a_prm_uri
рдФрд░ a_prm_hdr
, рдЬрд┐рд╕рдХреЗ рдЕрдиреБрд░реЛрдз рд╕реЗ рд╣рдорд╛рд░реЗ рдорд╛рдкрджрдВрдбреЛрдВ рдХреЗ рдореВрд▓реНрдп рдЖрдПрдВрдЧреЗредрдирдП рдорд╛рдкрджрдВрдбреЛрдВ рдХреЗ рд╕рд╛рде рд╣реИрдВрдбрд▓рд░ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХрд╛ рдЕрдиреБрд░реЛрдз рдХрд░реЗрдВPROCEDURE process_request
( a_request CLOB
, a_prm_uri VARCHAR2 := NULL
, a_prm_hdr VARCHAR2 := NULL
)
AS
TYPE TStringHash IS TABLE OF VARCHAR2(256) INDEX BY VARCHAR2(256);
lh_hdr TStringHash;
l_hdr VARCHAR2(256);
l_resp CLOB;
l_response_status INTEGER := 200;
l_ccontent_type VARCHAR2(64) := 'application/json';
l_in_headers VARCHAR2(32767);
BEGIN
lh_hdr('SERVER_SOFTWARE') := OWA_UTIL.get_cgi_env('SERVER_SOFTWARE');
lh_hdr('SERVER_NAME') := OWA_UTIL.get_cgi_env('SERVER_NAME');
lh_hdr('GATEWAY_INTERFACE') := OWA_UTIL.get_cgi_env('GATEWAY_INTERFACE');
lh_hdr('SERVER_PROTOCOL') := OWA_UTIL.get_cgi_env('SERVER_PROTOCOL');
lh_hdr('SERVER_PORT') := OWA_UTIL.get_cgi_env('SERVER_PORT');
lh_hdr('REQUEST_METHOD') := OWA_UTIL.get_cgi_env('REQUEST_METHOD');
lh_hdr('PATH_INFO') := OWA_UTIL.get_cgi_env('PATH_INFO');
lh_hdr('PATH_TRANSLATED') := OWA_UTIL.get_cgi_env('PATH_TRANSLATED');
lh_hdr('SCRIPT_NAME') := OWA_UTIL.get_cgi_env('SCRIPT_NAME');
lh_hdr('QUERY_STRING') := OWA_UTIL.get_cgi_env('QUERY_STRING');
lh_hdr('REMOTE_HOST') := OWA_UTIL.get_cgi_env('REMOTE_HOST');
lh_hdr('REMOTE_ADDR') := OWA_UTIL.get_cgi_env('REMOTE_ADDR');
lh_hdr('AUTH_TYPE') := OWA_UTIL.get_cgi_env('AUTH_TYPE');
lh_hdr('REMOTE_USER') := OWA_UTIL.get_cgi_env('REMOTE_USER');
lh_hdr('REMOTE_IDENT') := OWA_UTIL.get_cgi_env('REMOTE_IDENT');
lh_hdr('CONTENT-TYPE') := OWA_UTIL.get_cgi_env('CONTENT-TYPE');
lh_hdr('CONTENT-LENGTH') := OWA_UTIL.get_cgi_env('CONTENT-LENGTH');
lh_hdr('HTTP_ACCEPT') := OWA_UTIL.get_cgi_env('HTTP_ACCEPT');
lh_hdr('HTTP_ACCEPT_LANGUAGE') := OWA_UTIL.get_cgi_env('HTTP_ACCEPT_LANGUAGE');
lh_hdr('HTTP_USER_AGENT') := OWA_UTIL.get_cgi_env('HTTP_USER_AGENT');
lh_hdr('HTTP_COOKIE') := OWA_UTIL.get_cgi_env('HTTP_COOKIE');
lh_hdr('a_prm_uri') := a_prm_uri;
lh_hdr('a_prm_hdr') := a_prm_hdr;
l_hdr := lh_hdr.FIRST;
WHILE l_hdr IS NOT NULL LOOP
IF lh_hdr(l_hdr) IS NOT NULL THEN
l_in_headers := l_in_headers||CHR(10)||l_hdr||': '||lh_hdr(l_hdr);
END IF;
l_hdr := lh_hdr.NEXT(l_hdr);
END LOOP;
l_resp := '{ "result" : "success" }';
INSERT INTO t_ws_log
( message
, request_header
, request_body
, response_header
, response_body)
VALUES
( NULL
, l_in_headers
, a_request
, 'Content-Type: '||l_ccontent_type
, l_resp);
OWA_UTIL.STATUS_LINE(nstatus => l_response_status, bclose_header => FALSE);
OWA_UTIL.MIME_HEADER(ccontent_type => l_ccontent_type, bclose_header => FALSE);
OWA_UTIL.HTTP_HEADER_CLOSE();
htp.p(l_resp);
END process_request;
рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХреЗ рдЕрдВрджрд░, рд╣рдо рдмрд╕ рд▓реЙрдЧ рдореЗрдВ рдирдП рдорд╛рдкрджрдВрдбреЛрдВ рдХреЗ рдореВрд▓реНрдпреЛрдВ рдХреЛ рд░рд┐рдХреЙрд░реНрдб рдХрд░рддреЗ рд╣реИрдВредPOST рдЕрдиреБрд░реЛрдз рд╣реИрдВрдбрд▓рд░ рдореЗрдВ рдирдП рдорд╛рдкрджрдВрдбреЛрдВ рдХреЛ рдЬреЛрдбрд╝реЗрдВ - рдмрд╛рдЗрдВрдб рдЪрд░ рдХреЗ рд░реВрдк рдореЗрдВ :prm_uri
рдФрд░ :prm_hdr
редрдирдП рдорд╛рдкрджрдВрдбреЛрдВ рдХреЗ рд╕рд╛рде POST рдЕрдиреБрд░реЛрдз рдЕрдиреБрд░реЛрдз рдХреЗ рд╣реИрдВрдбрд▓рд░:DECLARE
l_blob BLOB := :body;
BEGIN
PK_ORDS_API.process_request(a_request => PK_ORDS_API.blob2clob(l_blob), a_prm_uri => :prm_uri, a_prm_hdr => :prm_hdr);
EXCEPTION
WHEN OTHERS THEN
OWA_UTIL.STATUS_LINE(nstatus => 500, bclose_header => FALSE);
OWA_UTIL.MIME_HEADER(ccontent_type => 'application/json');
htp.p('{ "result" : "error", "message" : "'||SQLERRM||'" }');
END;
рд╣реИрдВрдбрд▓рд░ рдореЗрдВ, рдкреИрд░рд╛рдореАрдЯрд░реНрд╕ рдЯреИрдм рдкрд░, рд╡реЗрд░рд┐рдПрдмрд▓реНрд╕ рдШреЛрд╖рд┐рдд рдХрд░реЗрдВ:
рдЗрд╕ рдлреЙрд░реНрдо рдореЗрдВ, рдкрд╣рд▓реЗ рдлрд╝реАрд▓реНрдб ( рдирд╛рдо ) рдореЗрдВ рдЙрд╕ рдкреИрд░рд╛рдореАрдЯрд░ рдХрд╛ рдирд╛рдо рд╣реЛрддрд╛ рд╣реИ, рдЬреЛ рд░рд┐рдХреНрд╡реЗрд╕реНрдЯ рдореЗрдВ рдЕрдкреЗрдХреНрд╖рд┐рдд рд╣реЛрддрд╛ рд╣реИ, рджреВрд╕рд░рд╛ рдлреАрд▓реНрдб ( рдмрд┐рдВрдж рдкреИрд░рд╛рдореАрдЯрд░ ) - рдЗрд╕ рдЕрдиреБрд░реЛрдз рдХреЗ рд╣реИрдВрдбрд▓рд░ рдореЗрдВ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд┐рдП рдЬрд╛рдиреЗ рд╡рд╛рд▓реЗ рдмрд╛рдЗрдВрдб рд╡реИрд░рд┐рдПрдмрд▓ рдХрд╛ рдирд╛рдоредрдЖрдЗрдП рдЕрдиреБрд░реЛрдз рдХреЛ рдирдП рдорд╛рдкрджрдВрдбреЛрдВ рдХреЗ рд╕рд╛рде рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд░реЗрдВ:
рдкрд░рд┐рдгрд╛рдо - рдЕрдиреБрд░реЛрдз рд╕реЗ рдкреИрд░рд╛рдореАрдЯрд░ рд▓реЙрдЧ рдореЗрдВ рд╕рд╣реЗрдЬреЗ рдЧрдП рдереЗ:
рдХреГрдкрдпрд╛ рдзреНрдпрд╛рди рджреЗрдВ рдХрд┐ рдпреВрдЖрд░рдЖрдИ рд╕реЗ рдорд╛рдкрджрдВрдбреЛрдВ рдХреЛ рд╕реАрдЬреАрдЖрдИ рдЪрд░ рд╕реЗ рднреА рдкреБрдирд░реНрдкреНрд░рд╛рдкреНрдд рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ QUERY_STRING
, рдЕрд░реНрдерд╛рдд, рдорд╛рдкрджрдВрдбреЛрдВ рдХреЛ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдмрд╛рдЗрдВрдб рдЪрд░ рд╢реБрд░реВ рдХрд░рдирд╛ рдЖрд╡рд╢реНрдпрдХ рдирд╣реАрдВ рд╣реИ - рдЖрдк рдЙрдиреНрд╣реЗрдВ рд╣реИрдВрдбрд▓рд░ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдореЗрдВ рдкрд╛рд░реНрд╕ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдирд┐рд╡реЗрджрдиредCGI рдЪрд░
рдУрд░реЗрдХрд▓ рдореЗрдВ HTTP рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рддреЗ рд╕рдордп, рдкрд░реНрдпрд╛рд╡рд░рдг рдЪрд░ рдХреЗ рдореВрд▓реНрдпреЛрдВ рдХреЛ рдкреНрд░рд╛рдкреНрдд рдХрд░рдирд╛ рд╕рдВрднрд╡ рд╣реИ рдЬреЛ HTTP рдЕрдиреБрд░реЛрдз рдХреЗ рд╕рдВрджрд░реНрдн рдХреЛ рджрд░реНрд╢рд╛рддрд╛ рд╣реИред рдЖрдк рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдЪрд░ рдХреЗ рдорд╛рди рдкреНрд░рд╛рдкреНрдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ OWA_UTIL.get_cgi_env
редрдкреАрдЬреА / рдПрд╕рдХреНрдпреВрдПрд▓ рдореЗрдВ рдЙрдкрд▓рдмреНрдз рд╕реАрдЬреАрдЖрдИ рдЪрд░ рдХреА рд╕реВрдЪреАAPEX_LISTENER_VERSION
GATEWAY_INTERFACE
GATEWAY_IVERSION
HTTP_ACCEPT_ENCODING
HTTP_HOST
HTTP_PORT
HTTP_USER_AGENT
PATH_ALIAS
PATH_INFO
PLSQL_GATEWAY
QUERY_STRING
REMOTE_ADDR
REMOTE_USER
REQUEST_CHARSET
REQUEST_IANA_CHARSET
REQUEST_METHOD
REQUEST_PROTOCOL
REQUEST_SCHEME
SCRIPT_NAME
SERVER_NAME
SERVER_PORT
SERVER_PROTOCOL
SERVER_SOFTWARE
WEB_AUTHENT_PREFIX
host
user-agent
CONTENT-LENGTH
CONTENT-TYPE
рдЗрдиреНрд╣реЗрдВ рднреА рджреЗрдЦреЗрдВ: HTTP рд╣реЗрдбрд░реНрд╕ (OWA_UTIL) рдФрд░ ORDS- рд╡рд┐рд╢рд┐рд╖реНрдЯ рдмрд╛рдЗрдВрдб рд╡реЗрд░рд┐рдПрдмрд▓реНрд╕рдЙрджрд╛рд╣рд░рдг 2: ORDS рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдПрдХ рддрд╛рд▓рд┐рдХрд╛ рддрдХ рдкрд╣реБрдБрдЪрдирд╛
рдЗрд╕ рдЙрджрд╛рд╣рд░рдг рдореЗрдВ, рд╣рдо ORDS рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдПрдХ рдбреЗрдЯрд╛рдмреЗрд╕ рдСрдмреНрдЬреЗрдХреНрдЯ (рдПрдХ рдЯреЗрдмрд▓ рдкрд░) рддрдХ рдкрд╣реБрдВрдЪрдиреЗ рдХреЗ рд╕рдВрдЧрдарди рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд░рддреЗ рд╣реИрдВредрдкрд┐рдЫрд▓реЗ рдЙрджрд╛рд╣рд░рдг рдореЗрдВ, рд╣рдо рдкреНрд░рд╛рдзрд┐рдХрд░рдг рдХреЗ рдмрд┐рдирд╛ рдкрд╣реБрдБрдЪ рдмрдирд╛рддреЗ рд╣реИрдВред рдкреНрд░рд▓реЗрдЦрди рдореЗрдВ рд╕рдВрд╕рд╛рдзрдиреЛрдВ рддрдХ рд╕реБрд░рдХреНрд╖рд┐рдд рдкрд╣реБрдВрдЪ рдмрдирд╛рдиреЗ рдХрд╛ рддрд░реАрдХрд╛ рджреЗрдЦреЗрдВ редрдУрдЖрд░рдбреАрдПрд╕ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдбреЗрдЯрд╛рдмреЗрд╕ рдСрдмреНрдЬреЗрдХреНрдЯ рдХреЛ рд╕реБрд▓рдн рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдкрдХреЛ рдХреЗрд╡рд▓ рдПрдХ рдЪрд░рдг - рдХрдорд╛рдВрдб рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ ORDS.ENABLE_OBJECT
ред рдЙрд╕рдХреЗ рдмрд╛рдж, рдСрдмреНрдЬреЗрдХреНрдЯ рдХреЛ рдкреНрд░рдкрддреНрд░ рдХреЗ URI рджреНрд╡рд╛рд░рд╛ рдПрдХреНрд╕реЗрд╕ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ:http://<HOST>:<PORT>/ords/<SchemaAlias>/<ObjectAlias>
редрдПрдХ рдкрд░реАрдХреНрд╖рд╛ рдкреИрдЯрд░реНрди рдмрдирд╛рдПрдВ
рдПрдХ рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП рд╣рдо "рдЖрджреЗрд╢" рддрд╛рд▓рд┐рдХрд╛ рдмрдирд╛рдПрдВрдЧреЗредрддрд╛рд▓рд┐рдХрд╛ рдирд┐рд░реНрдорд╛рдг рд╕реНрдХреНрд░рд┐рдкреНрдЯ:CREATE TABLE T_ORDER
(
id_order NUMBER NOT NULL,
NUM VARCHAR2(32),
buyer_name VARCHAR2(256),
dt_order DATE,
memo VARCHAR2(2000)
);
COMMENT ON TABLE T_ORDER IS '';
COMMENT ON COLUMN T_ORDER.id_order IS ' ';
COMMENT ON COLUMN T_ORDER.num IS ' ';
COMMENT ON COLUMN T_ORDER.buyer_name IS ' ';
COMMENT ON COLUMN T_ORDER.dt_order IS ' ';
COMMENT ON COLUMN T_ORDER.memo IS '';
ALTER TABLE T_ORDER ADD CONSTRAINT PK_T_ORDER PRIMARY KEY (ID_ORDER) USING INDEX;
ORDS рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдУрдкрдирд┐рдВрдЧ рдЯреЗрдмрд▓ рдПрдХреНрд╕реЗрд╕
- рдЖрд╡рд╢реНрдпрдХ рддрд╛рд▓рд┐рдХрд╛ рдХреЗ рд▓рд┐рдП рд╕рдВрджрд░реНрдн рдореЗрдиреВ рдЖрд╣реНрд╡рд╛рди SQL рдбреЗрд╡рд▓рдкрд░ рдореЗрдВ, рдЪреБрдиреЗрдВ ... рд╕реЗрд╡рд╛ рдмрд╛рдХреА рд╕рдХреНрд╖рдо рдХрд░реЗрдВ ред

- рдПрдХреНрд╕реЗрд╕ рд╕реЗрдЯрд┐рдВрдЧреНрд╕ рд╡рд┐рдВрдбреЛ рдореЗрдВ, рдСрдмреНрдЬреЗрдХреНрдЯ рдЪреЗрдХрдмреЙрдХреНрд╕ рд╕рдХреНрд╖рдо рдХрд░реЗрдВ , рдкреНрд░рд╛рдзрд┐рдХрд░рдг рдЖрд╡рд╢реНрдпрдХ рдЪреЗрдХрдмреЙрдХреНрд╕ рдХреЛ рдЕрдирдЪреЗрдХ рдХрд░реЗрдВ, рдкреНрд░рд╛рдкреНрдд рдкреАрдПрд▓ / рдПрд╕рдХреНрдпреВрдПрд▓ рдХреЛрдб рджреЗрдЦрдиреЗ рдХреЗ рд▓рд┐рдП "рд╕рдорд╛рдкреНрдд" (рдпрд╛ "рдЕрдЧрд▓рд╛" ) рдкрд░ рдХреНрд▓рд┐рдХ рдХрд░реЗрдВ:

- рдЗрди рдЪрд░рдгреЛрдВ рдХреЛ рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж, рддрд╛рд▓рд┐рдХрд╛
T_ORDER
HTTP рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдЙрдкрд▓рдмреНрдз рд╣реЛ рдЬрд╛рддреА рд╣реИ, рд╕рдВрд╕рд╛рдзрди рддрдХ рдкрд╣реБрдБрдЪрдиреЗ рдХреЗ рд▓рд┐рдП рдЖрдзрд╛рд░ URI:
http://<server>:<port>/ords/ws_test/t_order
рддрд╛рд▓рд┐рдХрд╛ рд╕рдорд╛рд╡реЗрд╢рди рд╕реВрдЪреА:
DECLARE
PRAGMA AUTONOMOUS_TRANSACTION;
BEGIN
ORDS.ENABLE_OBJECT(p_enabled => TRUE,
p_schema => 'WS_TEST',
p_object => 'T_ORDER',
p_object_type => 'TABLE',
p_object_alias => 't_order',
p_auto_rest_auth => FALSE);
commit;
END;
/
рд░рд┐рдХреЙрд░реНрдб рдмрдирд╛рдПрдВ рдпрд╛ рд╕рдВрдкрд╛рджрд┐рдд рдХрд░реЗрдВ
рддрд╛рд▓рд┐рдХрд╛ рддрдХ рдкрд╣реБрдВрдЪ рдЦреБрд▓реА рд╣реИ - рд╣рдо рдЬрд╛рдВрдЪрддреЗ рд╣реИрдВ рдХрд┐ рдЖрдк ORDS рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рддрд╛рд▓рд┐рдХрд╛ рдореЗрдВ рд░рд┐рдХреЙрд░реНрдб рдХреИрд╕реЗ рдмрдирд╛ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рд╕рдВрдкрд╛рджрд┐рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВредрд░рд┐рдХреЙрд░реНрдб рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП, рд╣рдо рдЕрдиреБрд░реЛрдз рдХреЛ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд░рддреЗ рд╣реИрдВ PUT
редORDS рдкреНрд░рд▓реЗрдЦрди рдореЗрдВ, рд╡рд┐рдзрд┐ рд╡рд┐рд╡рд░рдг рдореЗрдВ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рд╡рд┐рд╡рд░рдг PUT
рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ :PUT http://<HOST>:<PORT>/ords/<SchemaAlias>/<ObjectAlias>/<KeyValues>
рдЕрд░реНрдерд╛рддреН, KeyValues
рдПрдХ рдирдпрд╛ рд░рд┐рдХреЙрд░реНрдб рдмрдирд╛рдП рдЬрд╛рдиреЗ рдХреЗ рд▓рд┐рдП рднреА рдлрд╝реАрд▓реНрдб (рд░рд┐рдХреЙрд░реНрдб рдХреБрдВрдЬреА) рдХреЛ рднрд░рдирд╛ рдЪрд╛рд╣рд┐рдПред рдХреНрд╡реЗрд░реА рдХреЛ рд╕реНрд╡рдпрдВ рддрд╛рд▓рд┐рдХрд╛ рдХреЗ рд╕рднреА рдХреНрд╖реЗрддреНрд░реЛрдВ рдХреЛ рд╕реВрдЪреАрдмрджреНрдз рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП (рд▓реЗрдХрд┐рди рдХреБрдВрдЬреА рдлрд╝реАрд▓реНрдб рдХреЛ рдЫреЛрдбрд╝рд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ)редрдЬрд╛рдВрдЪPUT http://<server>:<port>/ords/ws_test/t_order/25 HTTP/1.1
Accept-Encoding: gzip,deflate
Content-Type: application/json;charset=UTF-8
Content-Length: 157
Host: <server>:<port>
Connection: Keep-Alive
User-Agent: Apache-HttpClient/4.1.1 (java 1.5)
{
"num" : "ords-3472634",
"buyer_name" : "Buyer Name",
"dt_order" : "2019-10-25T12:00:00Z",
"memo" : " 1"
}
рдЬрд╡рд╛рдм рдореЗрдВ, рд╣рдореЗрдВ рдмрд╕ рдмрдирд╛рдП рдЧрдП рд░рд┐рдХреЙрд░реНрдб рдХреЗ рд╕рднреА рдХреНрд╖реЗрддреНрд░ рдорд┐рд▓рддреЗ рд╣реИрдВ:
HTTP/1.1 200 OK
Content-Type: application/json
Content-Location: http://<server>:<port>/ords/ws_test/t_order/25
ETag: "..."
Transfer-Encoding: chunked
{
"id_order": 25,
"num": "ords-3472634",
"buyer_name": "Buyer Name",
"dt_order": "2019-10-25T12:00:00Z",
"memo": " 1",
"links": [
{
"rel": "self",
"href": "http://<server>:<port>/ords/ws_test/t_order/25"
},
{
"rel": "edit",
"href": "http://<server>:<port>/ords/ws_test/t_order/25"
},
{
"rel": "describedby",
"href": "http://<server>:<port>/ords/ws_test/metadata-catalog/t_order/item"
},
{
"rel": "collection",
"href": "http://<server>:<port>/ords/ws_test/t_order/"
}
]
}
рд╣рдо рддрд╛рд▓рд┐рдХрд╛ рдХреА рд╕рд╛рдордЧреНрд░реА рдХреЛ рджреЗрдЦрддреЗ рд╣реИрдВ - рд╣рдорд╛рд░рд╛ рдирдпрд╛ рд░рд┐рдХреЙрд░реНрдб рджрд┐рдЦрд╛рдИ рджрд┐рдпрд╛: рд░рд┐рдХреЙрд░реНрдб
рдХреЛ рдмрджрд▓рдиреЗ рдХреЗ рд▓рд┐рдП, рд╣рдо рдЙрд╕реА PUT рдкрджреНрдзрддрд┐ рдХреЛ рдХрд╣рддреЗ рд╣реИрдВред рд╣рдорд╛рд░реЗ рдХреНрд░рдо рдореЗрдВ рдиреЛрдЯ рдмрджрд▓реЗрдВ:PUT http://<server>:<port>/ords/ws_test/t_order/25 HTTP/1.1
Accept-Encoding: gzip,deflate
Content-Type: application/json;charset=UTF-8
Content-Length: 178
Host: <server>:<port>
Connection: Keep-Alive
User-Agent: Apache-HttpClient/4.1.1 (java 1.5)
{
"num" : "ords-3472634",
"buyer_name" : "Buyer Name",
"dt_order" : "2019-10-25T12:00:00Z",
"memo" : " 1. "
}
рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдореЗрдВ рд╣рдо рд╕рдВрд╢реЛрдзрд┐рдд рд░рд┐рдХреЙрд░реНрдб рдХреЗ рдорд╛рдкрджрдВрдбреЛрдВ рдХреЗ рд╕рд╛рде рд╕рдорд╛рди JSON рдкреНрд░рд╛рдкреНрдд рдХрд░рддреЗ рд╣реИрдВред рддрд╛рд▓рд┐рдХрд╛ рдореЗрдВ, рд╣рдо рджреЗрдЦрддреЗ рд╣реИрдВ рдХрд┐ рдиреЛрдЯ рдЕрджреНрдпрддрди рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ:
рдПрдХ рддрд╛рд▓рд┐рдХрд╛ рд╕реЗ рд░рд┐рдХреЙрд░реНрдб рдкреНрд░рд╛рдкреНрдд рдХрд░рдирд╛
рддрд╛рд▓рд┐рдХрд╛ рд╕реЗ рдбреЗрдЯрд╛ рдХреНрд╡реЗрд░реА рдХрд░рдиреЗ рдХреЗ рддреАрди рддрд░реАрдХреЗ рд╣реИрдВ:- рдкреГрд╖реНрда рдЕрдиреБрд░реЛрдз:
GET http://<HOST>:<PORT>/ords/<SchemaAlias>/<ObjectAlias>/?offset=<Offset>&limit=<Limit>
- рд╢рд░реНрддреЛрдВ рдХреЗ рд▓рд┐рдП рдЕрдиреБрд░реЛрдз:
GET http://<HOST>:<PORT>/ords/<SchemaAlias>/<ObjectAlias>/?q=<FilterClause>
- рдкреНрд░рд╛рдердорд┐рдХ рдХреБрдВрдЬреА рдЕрдиреБрд░реЛрдз:
GET http://<HOST>:<PORT>/ords/<SchemaAlias>/<ObjectAlias>/<KeyValues>
рд╕рднреА рд░рд┐рдХреЙрд░реНрдб рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдк рдХрд┐рд╕реА рднреА рдкреИрд░рд╛рдореАрдЯрд░ рдХреЛ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд┐рдП рдмрд┐рдирд╛ рдХреНрд╡реЗрд░реА рдЪрд▓рд╛ рд╕рдХрддреЗ рд╣реИрдВ:GET http://<server>:<port>/ords/ws_test/t_order/
рдЙрддреНрддрд░HTTP/1.1 200 OK
Date: Fri, 25 Oct 2019 15:39:58 GMT
Content-Type: application/json
ETag: "..."
Transfer-Encoding: chunked
{
"items": [ {
"id_order": 25,
"num": "ords-3472634",
"buyer_name": "Buyer Name",
"dt_order": "2019-10-25T12:00:00Z",
"memo": "╤Ю┬╡╨ГтАЪ╤Х╨ЖтА╣тДЦ ┬╖┬░╤Ф┬░┬╖ 1. ┬╖╤Ш┬╡╨ЕтАЪ╨К ╤Ч╨В╤Ш┬╡тАб┬░╨Е┬╡",
"links": [ {
"rel": "self",
"href": "http://<server>:<port>/ords/ws_test/t_order/25"
}]
}],
"hasMore": false,
"limit": 25,
"offset": 0,
"count": 1,
"links": [
{
"rel": "self",
"href": "http://<server>:<port>/ords/ws_test/t_order/"
},
{
"rel": "edit",
"href": "http://<server>:<port>/ords/ws_test/t_order/"
},
{
"rel": "describedby",
"href": "http://<server>:<port>/ords/ws_test/metadata-catalog/t_order/"
},
{
"rel": "first",
"href": "http://<server>:<port>/ords/ws_test/t_order/"
}
]
}
рд╕рд╛рдордЧреНрд░реА-рдкреНрд░рдХрд╛рд░ рд╣реЗрдбрд░ рдореЗрдВ рдПрдиреНрдХреЛрдбрд┐рдВрдЧ рдЬреЛрдбрд╝рдиреЗ рдХреЗ рд▓рд┐рдП рдУрд░реЗрдХрд▓ рдХреИрд╕реЗ рдкреНрд░рд╛рдкреНрдд рдХрд░реЗрдВ рдпрд╣ рдПрдХ рдЦреБрд▓рд╛ рдкреНрд░рд╢реНрди рд╣реИредGET http://<server>:<port>/ords/ws_test/t_order/25
рдЙрддреНрддрд░HTTP/1.1 200 OK
Date: Fri, 25 Oct 2019 15:44:35 GMT
Content-Type: application/json
ETag: "..."
Transfer-Encoding: chunked
{
"id_order": 25,
"num": "ords-3472634",
"buyer_name": "Buyer Name",
"dt_order": "2019-10-25T12:00:00Z",
"memo": "╤Ю┬╡╨ГтАЪ╤Х╨ЖтА╣тДЦ ┬╖┬░╤Ф┬░┬╖ 1. ┬╖╤Ш┬╡╨ЕтАЪ╨К ╤Ч╨В╤Ш┬╡тАб┬░╨Е┬╡",
"links": [
{
"rel": "self",
"href": "http://<server>:<port>/ords/ws_test/t_order/25"
},
{
"rel": "edit",
"href": "http://<server>:<port>/ords/ws_test/t_order/25"
},
{
"rel": "describedby",
"href": "http://<server>:<port>/ords/ws_test/metadata-catalog/t_order/item"
},
{
"rel": "collection",
"href": "http://<server>:<port>/ords/ws_test/t_order/"
}
]
}
рд░рд┐рдХреЙрд░реНрдб рд╣рдЯрд╛рдПрдВ
рд╣рдЯрд╛рдиреЗ рдХреЗ рд▓рд┐рдП, HTTP рд╡рд┐рдзрд┐ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВ DELETE
редрдкреВрдЫрддрд╛рдЫ:DELETE http://<server>:<port>/ords/ws_test/t_order/?q={"id_order":25}
рдореВрд▓ рд░реВрдк рдореЗрдВ рдЕрдиреБрд░реЛрдз:DELETE http://<server>:<port>/ords/ws_test/t_order/?q=%7B%22id_order%22%3A25%7D
рдЙрддреНрддрд░:HTTP/1.1 200 OK
Date=Fri, 25 Oct 2019 16:23:39 GMT
Content-Type=application/json
Transfer-Encoding=chunked
{"rowsDeleted":1}
рдЬрд╛рдБрдЪ - рдкрд░рд┐рдгрд╛рдо
ORDS рд╡реЗрдм рд╕реЗрд╡рд╛рдУрдВ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдХрд╛рдлреА рд▓рдЪреАрд▓рд╛ рдФрд░ рдмрд╣реБрдореБрдЦреА рддрдВрддреНрд░ рд╣реИ, рдЬреЛ рдЖрдкрдХреЛ рдкреВрд░реНрдг рд╡рд┐рдХрд╕рд┐рдд рд░реАрд╕реНрдЯ рд▓рд╛рдЧреВ рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИред рдкреНрд░рджрд░реНрд╢рди рдХреЗ рдорд╛рдорд▓реЗ рдореЗрдВ, рдпрд╣ рдЕрдкрдиреЗ рднрд╛рд░реА рдЖрдВрддрд░рд┐рдХ XML рдкрд╛рд░реНрд╕рд┐рдВрдЧ рдХреЗ рд╕рд╛рде рдиреЗрдЯрд┐рд╡ рдУрд░реЗрдХрд▓ рдбрдмреНрд▓реНрдпреВрдПрд╕ рд╕реЗ рдХрд╣реАрдВ рдмреЗрд╣рддрд░ рд╣реИред рдПрдХ рдЕрддреНрдпрдзрд┐рдХ рднрд░реА рд╣реБрдИ рдкреНрд░рдгрд╛рд▓реА рдХреЛ рд▓рд╛рдЧреВ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдпрд╣ рджреГрд╖реНрдЯрд┐рдХреЛрдг рдЙрдкрдпреБрдХреНрдд рдирд╣реАрдВ рд╣реИ: рдЗрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ, рдПрдХ рдЕрд▓рдЧ рддрдХрдиреАрдХ рд╕реНрдЯреИрдХ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ - рдПрдХ рдЕрд▓рдЧ рдЕрдиреБрдкреНрд░рдпреЛрдЧ рд╕рд░реНрд╡рд░, рдЕрдиреБрд░реЛрдзреЛрдВ рдХреЛ рд╕рдВрдХреБрд▓ рдбреЗрдЯрд╛рдмреЗрд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░, рдФрд░ рдЗрд╕реА рддрд░рд╣ред рд╣рд╛рд▓рд╛рдВрдХрд┐, HTTP рдЕрдиреБрд░реЛрдзреЛрдВ рдХреА рдЕрдкреЗрдХреНрд╖рд╛рдХреГрдд рдХрдо рд╕рдВрдЦреНрдпрд╛ (10-20 рдкреНрд░рддрд┐ рд╕реЗрдХрдВрдб рддрдХ) рдХреЗ рд╕рд╛рде рд╕рд┐рд╕реНрдЯрдо рдХреЗ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдХреЗ рд▓рд┐рдП, ORDS рдкреНрд░рджрд░реНрд╢рди рдФрд░ рд▓рдЪреАрд▓реЗрдкрди рджреЛрдиреЛрдВ рдореЗрдВ рдЗрд╖реНрдЯрддрдо рджреГрд╖реНрдЯрд┐рдХреЛрдг рд╣реИред ORDS рдХреЗрд╡рд▓ рд╡реЗрдм рд╕реЗрд╡рд╛ рд╡рд┐рдирд┐рд░реНрджреЗрд╢ рдЙрддреНрдкрдиреНрди рдХрд░рдиреЗ рдХреЗ рдорд╛рдорд▓реЗ рдореЗрдВ рдореВрд▓ рдирд┐рд╡рд╛рд╕реА Oracle WS рд╕реЗ рдиреАрдЪ рд╣реИ: рдмрд╛рдж рд╡рд╛рд▓рд╛ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рд╕рдорд╛рдкреНрдд рд╡рд┐рдирд┐рд░реНрджреЗрд╢ (WSDL) рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реИ рдЬрд┐рд╕реЗ рд╕реЗрд╡рд╛ рдХреЗ рдЙрдкрднреЛрдХреНрддрд╛рдУрдВ рдХреЛ "рдЬреИрд╕рд╛ рд╣реИ" рджрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рдУрдЖрд░рдбреАрдПрд╕ рдореЗрдВ рднреА рдХреНрд╖рдорддрд╛ рд╣реИрдПрдХ рд╡рд┐рд╡рд░рдг рдЙрддреНрдкрдиреНрди рдХрд░рдирд╛, рд▓реЗрдХрд┐рди рдЗрд╕ рд▓реЗрдЦ рдореЗрдВ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рд╕рд╛рд░реНрд╡рднреМрдорд┐рдХ рд╕реЗрд╡рд╛ (рдЬрдм рд╕рднреА рд╕реЗрд╡рд╛рдУрдВ рдХреЗ рд▓рд┐рдП рдПрдХ рд╕рд╛рдорд╛рдиреНрдп рдкреНрд░рд╕рдВрд╕реНрдХрд░рдг рдкреНрд░рдХреНрд░рд┐рдпрд╛ рд╣реИ) рдХреЗ рд╕рд╛рде рд╡рд┐рдЪрд╛рд░ рдХрд┐рдП рдЧрдП рджреГрд╖реНрдЯрд┐рдХреЛрдг рдХреЗ рд▓рд┐рдП, рд╡рд┐рдирд┐рд░реНрджреЗрд╢ рдХреА рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рдкреАрдврд╝реА рдЕрд╕рдВрднрд╡ рд╣реЛ рдЬрд╛рддреА рд╣реИред рдУрд░реЗрдХрд▓ рдХреЗрд╡рд▓ рдПрдХ рд╢реАрд░реНрд╖-рд╕реНрддрд░реАрдп рд╡рд┐рдирд┐рд░реНрджреЗрд╢ рдЙрддреНрдкрдиреНрди рдХрд░реЗрдЧрд╛, рдФрд░ рднрд╛рдЧреЛрдВ (рдбреЗрдЯрд╛ рдореЙрдбрд▓) рдХреЛ рдореИрдиреНрдпреБрдЕрд▓ рд░реВрдк рд╕реЗ рд╡рд░реНрдгрд┐рдд рдХрд░рдирд╛ рд╣реЛрдЧрд╛редрд╡реИрдХрд▓реНрдкрд┐рдХ рджреГрд╖реНрдЯрд┐рдХреЛрдг
рдЬрд╛рд╡рд╛ рд╕рд░реНрд╡рд▓реЗрдЯ
рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рд╡рд┐рдзрд┐ рдореЗрдВ рд╡реЗрдм рд╕реЗрд╡рд╛рдПрдБ рдмрдирд╛рдиреЗ рдХрд╛ рдпрд╣ рд╡рд┐рдХрд▓реНрдк рдиреЗрдЯрд┐рд╡ рдУрд░реЗрдХрд▓ WS рдХреЗ рд╕рдорд╛рди рд╣реИ: рдЗрд╕рдореЗрдВ Oracle рдХреЗ рдЕрдВрддрд░реНрдирд┐рд╣рд┐рдд HTTP рд╕рд░реНрд╡рд░, рд╕рд╛рде рд╣реА ACL рд╕реЗрдЯрд┐рдВрдЧреНрд╕ (рд╕рд╛рде рд╣реА рдЕрдиреНрдп рд╕рднреА рддрд░реАрдХреЛрдВ) рдХреЗ рдЙрдкрдпреЛрдЧ рдХреА рднреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИред рд▓реЗрдХрд┐рди, рдореВрд▓ Oracle WS рдХреЗ рд╡рд┐рдкрд░реАрдд, рдпрд╣ рд╡рд┐рдХрд▓реНрдк рд╢реБрджреНрдз HTTP рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рддрд╛ рд╣реИред рдЗрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ рдЕрдиреБрд░реЛрдз рд╕рдВрдЪрд╛рд▓рдХреЛрдВ рдЬрд╛рд╡рд╛ рдореЗрдВ рд▓рд┐рдЦрд╛ рдФрд░ HTTP рдЕрдиреБрд░реЛрдз рдкреНрд░рдХрд╛рд░ рдкрд░ рдХреЗрд╡рд▓ рджреЗрдЦрдиреЗ рдХреЗ рд▓рд┐рдП рдХрд░ рд░рд╣реЗ рд╣реИрдВ ( PUT
, GET
, POST
, рдФрд░ рдЗрддрдиреЗ рдкрд░ рд╣реИ, рд╣рд╛рд▓рд╛рдВрдХрд┐ рдпрд╣ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ рдФрд░ рд╕рднреА рдкреНрд░рдХрд╛рд░ рдХреЗ рд▓рд┐рдП рдПрдХ рд╣реИрдВрдбрд▓рд░), рдФрд░ рдкреНрд░рд╕рдВрд╕реНрдХрд░рдг рддрд░реНрдХ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдбреЗрд╡рд▓рдкрд░ рдХреЗ рд╡рд┐рд╡реЗрдХ рдкрд░ рдмрдиреА рд╣реБрдИ рд╣реИред рдЖрдк рдбреЗрдЯрд╛рдмреЗрд╕ рд▓реЙрдЬрд┐рдХ рдХреЗ рд░реВрдк рдореЗрдВ рдЕрдиреБрд░реЛрдз рдмреЙрдбреА "рдЬреИрд╕рд╛ рд╣реИ" рдХреЛ рдЯреНрд░рд╛рдВрд╕рдлрд░ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдФрд░ рд╡рд╣рд╛рдВ рдЗрд╕реЗ рдбрд┐рд╕рдПрдореНрдмреНрд▓реЗрдб рдФрд░ рдкреНрд░реЛрд╕реЗрд╕ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рдЖрдк рдЬрд╛рд╡рд╛ рд╣реИрдВрдбрд▓рд░ рдХреЗ рдХрд┐рдирд╛рд░реЗ рд▓реЙрдЬрд┐рдХ рдХрд╛ рд╣рд┐рд╕реНрд╕рд╛ рдЫреЛрдбрд╝ рд╕рдХрддреЗ рд╣реИрдВ, рдФрд░ рдбреЗрдЯрд╛рдмреЗрд╕ рд╕реЗ рдЕрдиреБрд░реЛрдз рдореЗрдВ рдкреНрд░рд╛рдкреНрдд рдбреЗрдЯрд╛ рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рдЖрд╡рд╢реНрдпрдХ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХреЛ рдХреЙрд▓ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВредрд╡реЗрдм рд╕реЗрд╡рд╛рдУрдВ рдХреЗ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдХреЗ рд▓рд┐рдП рдпрд╣ рджреГрд╖реНрдЯрд┐рдХреЛрдг рдХрд╛рдлреА рд╕рд╛рд░реНрд╡рднреМрдорд┐рдХ рд╣реИ рдФрд░ рдЗрд╕рдХреЗ рд▓рд┐рдП рдХрд┐рд╕реА рднреА рдЕрддрд┐рд░рд┐рдХреНрдд рдШрдЯрдХреЛрдВ рдХреА рд╕реНрдерд╛рдкрдирд╛ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИред рд╣рдордиреЗ рдХреЗрд╡рд▓ рд╕реЗрд╡рд╛ рдХреЗ рд▓рд┐рдП рд╕рдЦреНрдд рдЖрд╡рд╢реНрдпрдХрддрд╛рдУрдВ рдХреЗ рдХрд╛рд░рдг рдЗрд╕реЗ рд▓рд╛рдЧреВ рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдмрдВрдзрди рдирд╣реАрдВ рдХрд┐рдпрд╛: рд╣рдореЗрдВ рдПрдХ рд╡реЗрдм рд╕реЗрд╡рд╛ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдереА рдЬрд┐рд╕реЗ рдкреНрд░рдорд╛рдгреАрдХрд░рдг рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рдереАред рдЗрд╕ рджреГрд╖реНрдЯрд┐рдХреЛрдг рдХреЛ рд▓рд╛рдЧреВ рдХрд░рддреЗ рд╕рдордп, рдкреНрд░рдорд╛рдгреАрдХрд░рдг рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИ, рдФрд░ рдЗрд╕ рдЖрд╡рд╢реНрдпрдХрддрд╛ рдХреЛ рджрд░рдХрд┐рдирд╛рд░ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИредрдЗрд╕ рд╡рд┐рдзрд┐ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЕрдзрд┐рдХ рдЬрд╛рдирдХрд╛рд░реА рдХреЗ рд▓рд┐рдП Oracle рджрд╕реНрддрд╛рд╡реЗрдЬ рджреЗрдЦреЗрдВ редрдбреЗрдЯрд╛рдмреЗрд╕ рдПрдХреНрд╕реЗрд╕ рдбрд┐рд╕реНрдХреНрд░рд┐рдкреНрдЯрд░ (PL / SQL рд╕рд░реНрд╡рд▓реЗрдЯ)
рдпрд╣ рд╡рд┐рдХрд▓реНрдк рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдкрд┐рдЫрд▓реЗ рдПрдХ рдХреЗ рд╕рдорд╛рди рд╣реИ, рдХреЗрд╡рд▓ PL / SQL рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд╛рд░реНрдпрд╡рд┐рдзрд┐ рдЕрдиреБрд░реЛрдз рд╣реИрдВрдбрд▓рд░ рдХреЗ рд░реВрдк рдореЗрдВ рдХрд╛рд░реНрдп рдХрд░рддрд╛ рд╣реИредрдЙрджрд╛рд╣рд░рдг URL - рдкреИрдХреЗрдЬ рдХрд╛ рдирд╛рдо, рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХрд╛ рдирд╛рдо, рдкреИрд░рд╛рдореАрдЯрд░ (GET рдЕрдиреБрд░реЛрдз) рд╕рдВрдХреЗрдд рджрд┐рдП рдЧрдП рд╣реИрдВ:GET http://<server>:<port>/servlet_plsql/pi_test.test_serv?p_path=ppp
рдПрдХ рдкреЛрд╕реНрдЯ рдЕрдиреБрд░реЛрдз рдХреЗ рдорд╛рдорд▓реЗ рдореЗрдВ, рдкреИрд░рд╛рдореАрдЯрд░ рдирд╛рдо рд╕реАрдзреЗ "=" рд╕рдВрдХреЗрдд рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдЕрдиреБрд░реЛрдз рдирд┐рдХрд╛рдп рдореЗрдВ рджрд░реНрдЬ рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП, рдЬреЛ рдХрд┐ рдЕрд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рдЗрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ рдЕрдиреБрд░реЛрдз рд╕рд╛рдордЧреНрд░реА (ContentType) рдХрд╛ рдкреНрд░рдХрд╛рд░ рдХреЗрд╡рд▓ рдкрд╛рда рд╣реЛ рд╕рдХрддрд╛ рд╣реИред рдЖрдк рдХреЗрд╡рд▓ рдЗрд╕ рд░реВрдк рдореЗрдВ рдПрдХ xml рдпрд╛ json рд╕рдВрд░рдЪрдирд╛ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ:p_proc_param_name=<xml_data>тАж</xml_data>
рд╡реЗрдм рд╕реЗрд╡рд╛ рдХрд╛ рдпрд╣ рд╕рдВрд╕реНрдХрд░рдг рдХреЗрд╡рд▓ рдЙрди рдорд╛рдорд▓реЛрдВ рдореЗрдВ рд▓рд╛рдЧреВ рд╣реЛрддрд╛ рд╣реИ рдЬрдм рд╣рдо рдмрд╣реБрдд рд╕рд░рд▓ рдЕрдиреБрд░реЛрдзреЛрдВ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░ рд░рд╣реЗ рд╣реЛрддреЗ рд╣реИрдВ - рд╕рд░рд▓ рдбреЗрдЯрд╛ рдкреНрд░рдХрд╛рд░реЛрдВ рдХреЗ рд╕рд╛рде рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХреЙрд▓ред рдЗрд╕ рд╡рд┐рдХрд▓реНрдк рдореЗрдВ рдХрд┐рд╕реА рднреА рдЬрдЯрд┐рд▓ рдмрд╣реБ-рд╕реНрддрд░реАрдп рд╕рдВрд░рдЪрдирд╛ рдХреЛ рдкреНрд░рд╕рд╛рд░рд┐рдд рдХрд░рдиреЗ рд╕реЗ рдХрд╛рдо рдирд╣реАрдВ рдЪрд▓реЗрдЧрд╛редрдпрд╣ рджреГрд╖реНрдЯрд┐рдХреЛрдг ORACLE-BASE рд╡реЗрдмрд╕рд╛рдЗрдЯ рдкрд░ рд╡рд┐рд╕реНрддрд╛рд░ рд╕реЗ рд╡рд░реНрдгрд┐рдд рд╣реИредрдирд┐рд╖реНрдХрд░реНрд╖
Oracle рдореЗрдВ рдПрдХ рд╡реЗрдм рд╕реЗрд╡рд╛ рдмрдирд╛рдирд╛ рдПрдХ рдХрд╛рдлреА рд╕рд░рд▓ рдХрд╛рд░реНрдп рд╣реИ рдЬрд┐рд╕рдореЗрдВ рдХрд┐рд╕реА рднреА рдкреНрд░рдХрд╛рд░ рдХреЗ рд╕реБрдкрд░ рдХреЙрдореНрдкреНрд▓реЗрдХреНрд╕ рдХреЛрдб рдХреЛ рд▓рд┐рдЦрдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реЛрддреА рд╣реИред рдЙрд╕реА рд╕рдордп, рдУрд░реЗрдХрд▓ рдбреЗрд╡рд▓рдкрд░реНрд╕ рдЕрдкрдиреЗ рд╢рд╕реНрддреНрд░рд╛рдЧрд╛рд░ рдореЗрдВ рдПрдХ рдХрд╛рдлреА рд╢рдХреНрддрд┐рд╢рд╛рд▓реА рддрдВрддреНрд░ рдкреНрд░рд╛рдкреНрдд рдХрд░рддреЗ рд╣реИрдВ рдЬреЛ рдЖрдкрдХреЛ HTTP рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рд╡рд┐рд╖рдо рдкреНрд░рдгрд╛рд▓рд┐рдпреЛрдВ рдпрд╛ рдкреНрд░рдгрд╛рд▓рд┐рдпреЛрдВ рдХреЗ рдХреБрдЫ рд╣рд┐рд╕реНрд╕реЛрдВ рдХреЛ рдПрдХреАрдХреГрдд рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИредрдЗрд╕ рд▓реЗрдЦ рдореЗрдВ, рд╣рдордиреЗ рд╡реЗрдм рд╕реЗрд╡рд╛рдУрдВ рдХреЛ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдЪрд╛рд░ рджреГрд╖реНрдЯрд┐рдХреЛрдгреЛрдВ рдХреА рдЬрд╛рдВрдЪ рдХреАредрдиреЗрдЯрд┐рд╡ рдУрд░реЗрдХрд▓ рдбрдмреНрд▓реВрдПрд╕ рдПрдХ рдкреБрд░рд╛рдиреА рддрдХрдиреАрдХ рд╣реИ, рдЬрд┐рд╕рдХреЗ рдмрд╛рд╡рдЬреВрдж рдЗрд╕рдХреЗ рдлрд╛рдпрджреЗ рд╣реИрдВ: рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдк рд╕реЗ рдЙрддреНрдкрдиреНрди рдбрдмреНрд▓реНрдпреВрдПрд╕рдбреАрдПрд▓, рдПрдХреНрд╕рдПрдордПрд▓ рдХреЗ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рдкрд╛рд░реНрд╕рд┐рдВрдЧ, рдЕрддрд┐рд░рд┐рдХреНрдд рд╕реЙрдлрд╝реНрдЯрд╡реЗрдпрд░ рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИред рдореБрдЦреНрдп рджреЛрд╖ рд╕рдорд░реНрдерд┐рдд рдбреЗрдЯрд╛ рдкреНрд░рдХрд╛рд░реЛрдВ рдХрд╛ рдХрдо рдкреНрд░рджрд░реНрд╢рди рдФрд░ рд╕реАрдорд╛ рд╣реИредords- рдореЗрд░реА рд░рд╛рдп рдореЗрдВ, рд╡реЗрдм рд╕реЗрд╡рд╛рдУрдВ рдХреЛ рдмрдирд╛рдиреЗ рдХрд╛ рдкрд╕рдВрджреАрджрд╛ рддрд░реАрдХрд╛ред рд▓рдЪреАрд▓рд╛ рдкрд░реНрдпрд╛рдкреНрдд рдФрд░ рдмрд╣реБрдореБрдЦреАред рдЗрд╕ рдкрджреНрдзрддрд┐ рдХреА рдЕрд╕реБрд╡рд┐рдзрд╛рдУрдВ рдореЗрдВ рд╕реЗ, рд╣рдо рдХреЗрд╡рд▓ рдпрд╣ рднреЗрдж рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ рдпрд╣ рдорд╛рдирдХ рдУрд░реЗрдХрд▓ рдкреИрдХреЗрдЬ рдореЗрдВ рд╢рд╛рдорд┐рд▓ рдирд╣реАрдВ рд╣реИ, рдЕрд░реНрдерд╛рдд рдЗрд╕рдХреЗ рд▓рд┐рдП рдЕрд▓рдЧ рдЗрдВрд╕реНрдЯрд╛рд▓реЗрд╢рди рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИредрдЬрд╛рд╡рд╛ рд╕рд░реНрд╡рд▓реЗрдЯ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рд╕рд╛рд░реНрд╡рднреМрдорд┐рдХ рддрд░реАрдХрд╛ рд╣реИ рдЬрд┐рд╕реЗ рдЕрддрд┐рд░рд┐рдХреНрдд рд╕реЙрдлрд╝реНрдЯрд╡реЗрдпрд░ рдХреА рд╕реНрдерд╛рдкрдирд╛ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИред рд╣рд╛рд▓рд╛рдВрдХрд┐, рд╕рдм рдХреБрдЫ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдореИрдиреНрдпреБрдЕрд▓ рд░реВрдк рд╕реЗ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рдСрдЯреЛ-рдЬрдирд░реЗрдЯрд┐рдВрдЧ рд╕реЗрд╡рд╛рдУрдВ рдХреА рдХреЛрдИ рд╕рдВрднрд╛рд╡рдирд╛ рдирд╣реАрдВ рд╣реИредPL / SQL рд╕рд░реНрд╡рд▓реЗрдЯ рдХрдо рд╕реЗ рдХрдо рд╕рдлрд▓ рджреГрд╖реНрдЯрд┐рдХреЛрдг рд╣реИред рдкреНрд▓рд╕рд╕ рдореЗрдВ, рд╣рдо рдпрд╣ рднреЗрдж рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ рдЗрд╕ рд╡рд┐рдХрд▓реНрдк рдореЗрдВ рд╣рдореЗрдВ рдЕрддрд┐рд░рд┐рдХреНрдд рд╕реЙрдлрд╝реНрдЯрд╡реЗрдпрд░ рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдХреЗ рдмрд┐рдирд╛ HTTP рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рд╕рдВрдЧреНрд░рд╣реАрдд рдкреНрд░рдХреНрд░рд┐рдпрд╛рдУрдВ рдХреЛ рдХреЙрд▓ рдХрд░рдиреЗ рдХреА рдХреНрд╖рдорддрд╛ рдкреНрд░рд╛рдкреНрдд рд╣реЛрддреА рд╣реИ, рдпрд╛ рдЕрдиреНрдп рднрд╛рд╖рд╛рдУрдВ рдореЗрдВ рдЕрддрд┐рд░рд┐рдХреНрдд рдХреЛрдб рд▓рд┐рдЦреЗ рдмрд┐рдирд╛: рд╕рднреА рдХреЛрдб рдХреЗрд╡рд▓ PL / SQL рдореЗрдВ рд▓рд┐рдЦреЗ рдЬрд╛рддреЗ рд╣реИрдВредрдзреНрдпрд╛рди рджреЗрдиреЗ рдХреЗ рд▓рд┐рдП рдЖрдк рд╕рднреА рдХрд╛ рдзрдиреНрдпрд╡рд╛рдж! рдореБрдЭреЗ рдЙрдореНрдореАрдж рд╣реИ рдХрд┐ рд▓реЗрдЦ рдХреА рд╕рд╛рдордЧреНрд░реА рдЙрди рд▓реЛрдЧреЛрдВ рдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧреА рд╣реЛрдЧреА рдЬреЛ рдХрд┐рд╕реА рднреА рддрд░рд╣ рдУрд░реЗрдХрд▓ рдЙрддреНрдкрд╛рджреЛрдВ рд╕реЗ рдЬреБрдбрд╝реЗ рд╣реБрдП рд╣реИрдВ рдФрд░ рдЗрдВрдЯреНрд░рд╛-рд╕рд┐рд╕реНрдЯрдо рдФрд░ рдЪреМрд░рд╛рд╣реЗ рдПрдХреАрдХрд░рдг рдХреА рд╕рдорд╕реНрдпрд╛рдУрдВ рд╕реЗ рд╣реИрд░рд╛рди рд╣реИрдВредрдЕрддрд┐рд░рд┐рдХреНрдд рд╕рд╛рдордЧреНрд░реА