Escolar Documentos
Profissional Documentos
Cultura Documentos
"#$%&'(")'
&*+,$($-.'
/%'0'(1',)$"+$2
3*04*%5.+*"6*4&
789:;
<,=+.$""">""/?)$""">""7)5#(""">""
/%'0'(1',)$"+$2"3*04*%5.+*"6*4&"789:;
@A
!"#$%&%&
! !
!"#$ %&'(#!)*+$,-'*!.#$$/&!.&$0#1#
/%'0'(1',)$"+$2"3*04*%5.+*
6*4&"789:;
BC"#*,4$?"*2".,&*-%'%"4?'4"'#(.+'DE*4"+$2"$"F6:
:%$&1*?4"G
!":%$&1*?4H"+$2$"5C%.$4"F6:I4H"4J$"4.4&*2'4"2?.&$
+$2#(*&$4"*"K?*"'0%',-*").5*%4'4"C%*'4")'"*2#%*4'H
#$%L2"4'0*2$4"K?*"2?.&$4")*44*4"F6:I4",J$"&*2
'+$2#',1')$"'4",$5'4"'#(.+'DE*4")*"2*%+')$H
#%.,+.#'(2*,&*",'"C%*'"M*0>2$0.(*N
O'4"*,K?',&$"'4"-%',)*4")*4*,5$(5*)$%'4"')*K?'2
4*?4"F6:I4"#'%'"*44'",$5'"-*%'DJ$"&*+,$(P-.+'H
#$)*2$4"2?.&$"0*2"Q'R*%"$4"-%',)*4"*"'%+'.+$4
F6:I4"+$,5*%4'%*2"+$2"Q*%%'2*,&'4"2'.4"'2.-C5*.4H
)*44'"Q$%2'"?,.2$4"$"2*(1$%")*"+')'"?2'")'4
&*+,$($-.'4"#'%'"$&.2.R'%"$4"&%'0'(1$4N
!":%$&1*?4"+$,&*2#('"'(-?2'4"Q$%2'4")*"%*'(.R'%
.,&*-%'DJ$H"+$2$S
3*04*%5.+*"T!7:
F7<":%P#%.$
3*04*%5.+*"6*4&
F2"2.,1'"+$,+*#DJ$"$"2'.4"')*%*,&*"'4
#('&'Q$%2'4"*U.4&*,&*4",$"2*%+')$"L"$"M*04*%5.+*
6*4&"K?*"#$44?."4?'"%*#%*4*,&'DJ$"*2"BT!V"*"#$%
#')%J$"/!/9T"WC"#$44?."4?'"+'2')'".,&*%Q'+*"*")*
'?&*,&.+'DJ$"0*2".2#(*2*,&')'4N
:'44$4",*+*44C%.$4"#'%'"#%*#'%'%"4*?":%$&1*?4"#'%'
Q?,+.$,'%"+$2"$"3*04*%5.+*"6*4&S
X$,Y-?%'%"?2"4*%5*%")*"M*04*%5.+*"6*4&
:'%'"%*'(.R'%"'"+$,Q.-?%'DJ$"4*%C",*+*44C%.$
').+.$,'%2$4"'(-?,4".&*,4",$"'%K?.5$"N.,.")$"4*%5*%
:%$&1*?4N"T?-.%$"K?*"4*W'"+%.')$"?2"4*%5*%"4*#'%')$
#'%'"$"3*04*%5.+*H"&',&$"#$%"K?*4&J$")*
#*%Q$%2',+*H"+$2$"&'20L2"#$%"K?*4&J$")*
2',?&*,DJ$N
1. [GENERAL]
2. MAXSTRINGSIZE=10
3.
4. [HTTPV11]
5. Enable=1
6. Sockets=HTTPREST
7.
8. [HTTPREST]
9. Port=8080
10. URIs=HTTPURI
11. SECURITY=1
12.
13. [HTTPURI]
14. URL=/rest
15. PrepareIn=All
16. Instances=1,2
17.
18. [ONSTART]
19. jobs=HTTPJOB
20. RefreshRate=30
21.
22. [HTTPJOB]
23. MAIN=HTTP_START
24. ENVIRONMENT=environment
"
8*4*,5$(5*,)$"4?'"X('44*"6*4&"789:;
:'%'"+$2*D'%2$4"'")*4*,5$(5*%",$44'":%.2*.%'
+('44*"6*4&"*2"789:;"5'2$4"#%*+.4'%"*,&*,)*%"?2
#$?+$"'".)*.'")$4"5*%0$4"*U.4&*,&*4",*4&'
%*#%*4*,&'DJ$S
8*Q.,.)'4"'4"%*4#$,4'0.(.)')*4")*"+')'"2L&$)$
#$)*2$4"+$2*D'%"'"*U*2#(.Q.+'%"+')'"?2")*(*4N
:'%'".44$H"#%.2*.%$"#%*+.4'2$4"'"+$,4&%?.%"'
*4&%?&?%'"0'4*")$",$44$"Q$,&*"789:;"#'%'",$44'
+('44*"6*4&N
1. #Include 'Protheus.ch'
2. #Include 'RestFul.CH' //Necessario
utilizar a incluide do RESTFUL
3.
4. /*/-----------------------------------------
------------------
5. {Protheus.doc} WsRstExp()
6. Dummy function da Classe Rest
7. Esta função é necessario pois o ADVPL
necessita de um function
8. dentro do fonte
9. Uso: WsRstExp
10.
11. @sample
12. //U_WsRstExp()
13.
14. @author Paulo Henrique Corrêa Cardoso.
15. @since 21/07/2020
16. @version 1.0
17. --------------------------------------------
-----------------/*/
18. User Function WsRstExp()
19. Return
20.
21. /*/-----------------------------------------
------------------
22. {Protheus.doc} WsRstExp()
23. Definição da Classe, propriedades e
assinatura dos métodos
24. Uso: WsRstExp
25.
26. @sample
27. //U_WsRstExp()
28.
29. @author Paulo Henrique Corrêa Cardoso.
30. @since 21/07/2020
31. @version 1.0
32. --------------------------------------------
-----------------/*/
33. WSRESTFUL WsRstExp DESCRIPTION "Serviço REST
de exemplo"
34. WSDATA param1 As STRING
35. WSDATA param2 As STRING Optional
36.
37. WSMETHOD GET DESCRIPTION "Get
Exemplo" WSSYNTAX "/WsRstExp?param1=
{valueParam1}¶m2={valueParam2}"
38. WSMETHOD POST DESCRIPTION "Post
Exemplo" WSSYNTAX "/WsRstExp"
39. WSMETHOD PUT DESCRIPTION "Put
Exemplo" WSSYNTAX "/WsRstExp?param1=
{valueParam1}¶m2={valueParam2}"
40. WSMETHOD DELETE DESCRIPTION "Delete
Exemplo" WSSYNTAX "/WsRstExp?param1=
{valueParam1}¶m2={valueParam2}"
41.
42. END WSRESTFUL
V$"*U*2#($"'+.2'")*Q.,.2$4"'"+('44*"!"#"$%&'H",'
4*K?*,+.'")*Q.,.2$4"@"#'%Z2*&%$4"4*,)$"?2")*(*4
+$2$"$#.+.$,'(N
F2"4*-?.)'")*Q.,.2$4"'"'44.,'&?%'")$4"A"2L&$)$4
K?*"4*%J$"?&.(.R')$4N
V'")*Q.,.DJ$")'"'44.,'&?%'"&*2$4"'"4*-?.,&*
*4&%?&?%'S
!()%*+,-"[+9*%0\"]+<)^"-%(.#/0*/,1
[+8*4+%.#&.$,\"]!((21*34"[+T.,&'U\^"]03*+
[+:'&1\^"]**356"[+//'(_9*%4.$,\^
V'")*Q.,.DJ$")$"2L&$)$"&*2$4"'"4*-?.,&*"*4&%?&?%'S
!()%*+,-7[+9*%0\"]+<)^"]89%#203#3)
[`?*%a:'%24\^"]03*+03#3)
[:'&1:'%24\^"]+%3-%#03#3)
[b*')*%:'%24\^"!(#%(*:95"[346*4&c?(\
ID para diferenciar e
possibilitar a criação de
cId Caracter
métodos que utilizam
verbos http repetidos
Indica os parâmetros,
separados por vírgulas, qu
este método receberá via
QueryString.
QueryParms –
O parâmetros indicados
aqui devem ser
declarados
como WSDATA.
Indica os parâmetros,
separados por vírgulas, qu
PathParms – este método receberá via
path, ou seja, como parte
da URL.
Indica os parâmetros,
separados por vírgulas, qu
HeaderParms –
este método receberá via
Header na requisição HTTP
7-$%'"5'2$4"+$2*D'%"'")*Q.,.%"$4"2L&$)$4"($-$
'0'.U$")$"+P).-$"',&*%.$%S
1. /*/-----------------------------------------
------------------
2. {Protheus.doc} GET
3. Get de Exemplo - Método utilizado para
consultas
4. Uso: WsRstExp
5. @sample
6. //GET / WsRstExp
7. @author Paulo Henrique Corrêa Cardoso.
8. @since 21/07/2020
9. @version 1.0
10. --------------------------------------------
-----------------/*/
11. WSMETHOD GET WSRECEIVE param1, param2
WSSERVICE WsRstExp
12. Local lRet := .T. // Recebe
o Retorno
13. Local oJsonRet := NIL // Recebe
o JSON de Saida
14.
15. /*
16.
17. Trecho com a sua codificação
18.
19. */
20.
21. // Monta Objeto JSON de retorno
22. oJsonRet := NIL
23. oJsonRet := JsonObject():new()
24.
25. oJsonRet['Propriedade1'] :=
EncodeUTF8("Retorno 1", "cp1252")
26. oJsonRet['Propriedade2'] := 10
27. oJsonRet['Propriedade3'] := .T.
28.
29. // Devolve o retorno para o Rest
30. ::SetResponse(oJsonRet:toJSON())
31.
32. Return lRet
33.
34.
35. /*/-----------------------------------------
------------------
36. {Protheus.doc} POST
37. Post de Exemplo - Método utilizado para
inclusões
38. Uso: WsRstExp
39. @sample
40. //POST/ WsRstExp
41. @author Paulo Henrique Corrêa Cardoso.
42. @since 21/07/2020
43. @version 1.0
44. --------------------------------------------
-----------------/*/
45. WSMETHOD POST WSRECEIVE nullparam WSSERVICE
WsRstExp
46. Local lRet := .T. // Recebe
o Retorno
47. Local cBody := '' // Recebe
o conteudo do Rest
48. Local oJson := NIL // Recebe
o JSON de Entrada
49. Local oJsonRet := NIL // Recebe
o JSON de Saida
50.
51. // Pega o conteudo JSON da transação Rest
52. cBody := ::GetContent()
53. ::SetContentType("application/json")
54.
55. oJson := JsonObject():new()
56. oJson:fromJson(cBody)
57.
58. /*
59.
60. Trecho com a sua codificação
61.
62. */
63.
64. // Monta Objeto JSON de retorno
65. oJsonRet := NIL
66. oJsonRet := JsonObject():new()
67.
68. oJsonRet['Propriedade1'] :=
EncodeUTF8("Retorno 1", "cp1252")
69. oJsonRet['Propriedade2'] := 10
70. oJsonRet['Propriedade3'] := .T.
71.
72. // Devolve o retorno para o Rest
73. ::SetResponse(oJsonRet:toJSON())
74.
75. FreeObj(oJsonRet)
76. FreeObj(oJson)
77.
78. Return lRet
79.
80. /*/-----------------------------------------
------------------
81. {Protheus.doc} PUT
82. PUT de Exemplo - Método utilizado para
Alterações
83. Uso: WsRstExp
84. @sample
85. //PUT / WsRstExp
86. @author Paulo Henrique Corrêa Cardoso.
87. @since 21/07/2020
88. @version 1.0
89. --------------------------------------------
-----------------/*/
90. WSMETHOD PUT WSRECEIVE param1, param2
WSSERVICE WsRstExp
91. Local lRet := .T. // Recebe
o Retorno
92. Local cBody := '' // Recebe
o conteudo do Rest
93. Local oJson := NIL // Recebe
o JSON de Entrada
94. Local oJsonRet := NIL // Recebe
o JSON de Saida
95.
96. // Pega o conteudo JSON da transação Rest
97. cBody := ::GetContent()
98. ::SetContentType("application/json")
99.
100. oJson := JsonObject():new()
101. oJson:fromJson(cBody)
102.
103. /*
104.
105. Trecho com a sua codificação
106.
107. */
108.
109. // Monta Objeto JSON de retorno
110. oJsonRet := NIL
111. oJsonRet := JsonObject():new()
112.
113. oJsonRet['Propriedade1'] :=
EncodeUTF8("Retorno 1", "cp1252")
114. oJsonRet['Propriedade2'] := 10
115. oJsonRet['Propriedade3'] := .T.
116.
117. // Devolve o retorno para o Rest
118. ::SetResponse(oJsonRet:toJSON())
119.
120. FreeObj(oJsonRet)
121. FreeObj(oJson)
122.
123. Return lRet
124.
125. /*/-----------------------------------------
------------------
126. {Protheus.doc} DELETE
127. DELETE de Exemplo - Método utilizado para
exclusões
128. Uso: WsRstExp
129. @sample
130. //DELETE / WsRstExp
131. @author Paulo Henrique Corrêa Cardoso.
132. @since 21/07/2020
133. @version 1.0
134. --------------------------------------------
-----------------/*/
135. WSMETHOD DELETE WSRECEIVE param1, param2
WSSERVICE WsRstExp
136. Local lRet := .T. // Recebe
o Retorno
137. Local cBody := '' // Recebe
o conteudo do Rest
138. Local oJson := NIL // Recebe
o JSON de Entrada
139. Local oJsonRet := NIL // Recebe
o JSON de Saida
140.
141. // Pega o conteudo JSON da transação Rest
142. cBody := ::GetContent()
143. ::SetContentType("application/json")
144.
145. oJson := JsonObject():new()
146. oJson:fromJson(cBody)
147.
148. /*
149.
150. Trecho com a sua codificação
151.
152. */
153.
154. // Monta Objeto JSON de retorno
155. oJsonRet := NIL
156. oJsonRet := JsonObject():new()
157.
158. oJsonRet['Propriedade1'] :=
EncodeUTF8("Retorno 1", "cp1252")
159. oJsonRet['Propriedade2'] := 10
160. oJsonRet['Propriedade3'] := .T.
161.
162. // Devolve o retorno para o Rest
163. ::SetResponse(oJsonRet:toJSON())
164.
165. FreeObj(oJsonRet)
166. FreeObj(oJson)
167.
168. Return lRet
V$4"*U*2#($4"'+.2'"?&.(.R*."'"X('44*"B4$,!0W*+&"#'%'
&%'&'%")')$4")$"&.#$"BT!VH"+$2"'"2*42'"L"#$44.5*(
&%',4Q$%2'%"$"BT!V"#'%'"$0W*&$"*"5.+*d5*%4'N
O?.&$".2#$%&',&*
:'%'"%*'(.R'%"$4"%*&$%,$4"#'%'"$"3*04*%5.+*"6*4&H
&*2$4")$.4"2L&$)$4"K?*"#%*+.4'2$4"?&.(.R'%N
F2"+'4$")*"4?+*44$"*"5'2$4")*5$(5*%"?2"BT!V"+$2
+$,&*e)$H"?&.(.R'2$4"$
2L&$)$";;(<$#<"'=>"<?@AB(,1CDEN
F2"+'4$")*"Q'(1'"?&.(.R'2$4"$
2L&$)$"(<$#<"$:FGH$?A($F$G"%II=CEJ
%>K=L<9*:M?@A)<>"FN<O7L<7%II=CDJ7@K'PQRQDEEN
!04*%5'DJ$"S"?&.(.R$"'"Q?,DJ$"%>K=L<9*:M?@*<&$=DJ
@K'PQRQDEH"#'%'"4?#%.2.%"#%$0(*2'4")*"'+*,&?'DJ$
'$"?&.(.R'%"$"*,5.$")*"&*U&$4"#*('"3T"6*4&N
V$4"+'4$4")*"Q'(1'"#$)*2$4"?&.(.R'%"'"&'0*('"'0'.U$
#'%'")*Q.,.%"$"T&'&?4F%%$S
"
9$?")*.U'%"'K?."'")$+?2*,&'DJ$")'"/!/9T"+$2"2'.4
'(-?2'4".,Q$%2'DE*4".2#$%&',&*4"4$0%*"&$)'"'
*4&%?&?%'")$"6FT/N
1&S>>&),N&$&54N+$2>).4#('a>Q%'2*M$%_>6FT/f789:
;
1&S>>&),N&$&54N+$2>#'-*4>5.*M#'-*N'+&.$,G
#'-*<)ghi@jkAlj
"
m".44$"#*44$'(N
F4#*%$"K?*"'W?)*"2?.&$"5$+n4N
"
7&L"'"#%PU.2'ooo
!"#$%&'()*%&+
!,&'(&-(.."+
Carregando...
Relacionado
:%$-%'2'DJ$"!%.*,&')'"' F4+$#$")*"5'%.C5*.4
!0W*&$4"d"789:; 789:;
@t>qh>@q@q ph>qh>@q@q
F2"v7)5#(v F2"v7)5#(v
!"K?*"#$)*2$4"*4#*%'%
)'"&*+,$($-.'G
@p>qh>@q@q
F2"vX?%.$4.)')*4v
T$0%*"$"7?&$%
:'?($"b*,%.K?*"X$%%n'
X'%)$4$
!"#$%$&'(!')(
7,'(.4&'")*"4.4&*2'4H"Q$%2')$"#*('
c'+?()')*")*"<,Q$%2C&.+'"*"7)2.,.4&%'DJ$
:'?(.4&'"N"X$2"2'.4")*"pq"',$4")*
*U#*%.n,+.'"*2"T`;"*").5*%4'4"(.,-?'-*,4
)*"#%$-%'2'DJ$N"7)2.,.4&%')$%"*
)*4*,5$(5*)$%")*"F6:"/!/9T":%$&1*?4N
# $
8*.U*"?2'"%*4#$4&'"
Pesquisar
:$4&4"%*+*,&*4
% B!<VI4"T`;"r"9'2$4"'#%*,)*%"G
% /*+,$($-.'"*"'":',)*2.'
% O$)*($"F,&.)')*"6*('+.$,'2*,&$dT`;
% X$,4?(&'4"T`;"r"9'2$4"'#%*,)*%ooo
% O'+1.,*";*'%,.,-"s"<,&*(.-*,+.'"7%&.Y+.'(
X$2*,&C%.$4
!"#$%&'()*+,#(&-%**."&-"*/%0%"*2"T+%.#&"#'%'
%*$%-',.R'%>%*+%.'%"=,).+*4",$"O.+%$4$Q&"T`;"T*%5*%
12"*2"T+%.#&"#'%'"%*$%-',.R'%>%*+%.'%"=,).+*4",$
O.+%$4$Q&"T`;"T*%5*%
!"#$%&'()*+,#(&-%**."&-"*/%0%"*2"X$,4?(&'4"T`;
r"9'2$4"'#%*,)*%ooo
-(0"*"*2"X$,4?(&'4"T`;"r"9'2$4"'#%*,)*%ooo
!"#$%&'()*+,#(&-%**."&-"*/%0%"*2";P-.+'")*
#%$-%'2'DJ$H"?2"+$,1*+.2*,&$"#'%'"'"5.)'N
7%K?.5$4
% )*R*20%$"@q@q
% '-$4&$"@q@q
% W?(1$"@q@q
% $?&?0%$"@qpt
X'&*-$%.'4
% 7)5#(
% u',+$")*"8')$4
% X?%.$4.)')*4
% 8.+'4
% ;P-.+'
&