Histórico da Página
Aviso |
---|
A Lib do Protheus com as funcionalidades para utilização do TOTVS | HTML Framework estará disponível em 2016. No momento versões controladas serão disponibilizadas para as equipes de Segmentos envolvidas no projeto de Experiências de Uso |
Após a instalação do IDE do TOTVS | HTML Framework, incluir o endereço do repositório WADL do Protheus http://<servidor>:<porta>/<uri>/getAvailableServices.
Aviso | ||
---|---|---|
| ||
Caso o seu modelo possua qualquer particularidade, não faça uso dos dicionários de dados do Prothues e/ou a API padrão não esteja atendendo sua necessidade, você deverá criar uma classe herdando da FWRestModel e sobrescrever os métodos conforme sua implementação de modelo necessita: FWRestModel |
Informações |
---|
O REST do Model está disponível somente para Models que utilizam tabelas do banco de dados |
Informações | ||
---|---|---|
| ||
Para utilizar o comando PUBLISH MODEL REST NAME é necessário o include FWMVCDEF.CH mais atual, disponibilizado no portal do cliente. É necessário também declarar o uso deste include no seu fonte. |
Para utilizar o REST do Model no TOTVS | Framework HTML não é necessário criar uma classe REST para cada ModelDef, basta incluir a cláusula abaixo no mesmo fonte da função:
Sem Formato |
---|
PUBLISH MODEL REST NAME <nome_rest_model> |
No campo <nome_rest_model> informar o identificador do Model que será utilizado no endereço de chamada do REST, como no exemplo utilizando o cadastro de clientes abaixo:
Bloco de código | ||
---|---|---|
| ||
#INCLUDE "FWMVCDEF.CH"
PUBLISH MODEL REST NAME customer
Static Function Modeldef()
Local oModel := Nil
oModel:= MPFormModel():New("MATA030",/*Pre-Validacao*/, /*Pos-Validacao*/, /*Commit*/,/*Cancel*/)
oModel:AddFields("MATA030_SA1", Nil , FWFormStruct(1,"SA1"),/*Pre-Validacao*/,/*Pos-Validacao*/,/*Carga*/)
Return(oModel) |
Nesse exemplo, baseado no exemplo de Appserver.ini , o endereço para chamada REST do Model será Baseado no exemplo de Appserver.ini o endereço será http://localhost:8084/html-protheus/rest/getAvailableServices
/fwhtmlmodel/customer, sendo os métodos HTTP disponíveis:
Método | Queryparam | Pathparam | Descrição | Exemplo da URL |
---|---|---|---|---|
GET | start (inicio da listagem) limit (quantidade de linhas, valor padrão 10) | retorno de listagem do ModelRetorn | http://localhost:8084/hmlt-protheus/rest/fwhtmlmodel/customer?start=1&limit=50 | |
GET | id (Recno da linha da tabela) | retorno dos dados do Model | http://localhost:8084/hmlt-protheus/rest/fwhtmlmodel/customer/6 | |
POST | id (Recno da linha da tabela) | inclusão do Model | http://localhost:8084/hmlt-protheus/rest/fwhtmlmodel/customer/6 | |
PUT | id (Recno da linha da tabela) | atualização do Model | http://localhost:8084/hmlt-protheus/rest/fwhtmlmodel/customer/6 | |
DELETE | id (Recno da linha da tabela) | exclusção do Model | http://localhost:8084/hmlt-protheus/rest/fwhtmlmodel/customer/6 |
Informações |
---|
O JSON de retorno dos métodos possui a propriedade id que contém o Recno da linha tabela, além dos campos do Model |
Exemplo de retorno:
Sem Formato |
---|
{
"data": {
"A1_ABATIMP": "",
"A1_ABICS": "",
"A1_AGREG": "",
"A1_ALIFIXA": "",
"A1_ALIQIR": 0,
"A1_ATIVIDA": "",
"A1_ATR": 0,
"A1_B2B": "",
"A1_BAIRRO": ".",
"A1_BAIRROC": "",
"A1_BAIRROE": "",
"A1_BCO1": "",
"A1_BCO2": "",
"A1_BCO3": "",
"A1_BCO4": "",
"A1_BCO5": "",
"A1_CALCSUF": "",
"A1_CARGO1": "",
"A1_CARGO2": "",
"A1_CARGO3": "",
"A1_CBO": "",
"A1_CDRDES": "",
"A1_CEINSS": "",
"A1_CEP": "",
"A1_CEPC": "",
"A1_CEPE": "",
"A1_CGC": "",
"A1_CHQDEVO": 0,
"A1_CHVCAM": "",
"A1_CLASSE": "",
"A1_CLASVEN": "",
"A1_CLICNV": "",
"A1_CLIFAT": "",
"A1_CLIPRI": "",
"A1_CNAE": "",
"A1_COD": "000001",
"A1_COD_MUN": "",
"A1_CODAGE": "",
"A1_CODFID": "",
"A1_CODFOR": "",
"A1_CODMARC": "",
"A1_CODMUN": "",
"A1_CODMUNE": "",
"A1_CODPAIS": "",
"A1_CODSIAF": "",
"A1_COMAGE": 0,
"A1_COMIS": 0,
"A1_COMPLEM": "",
"A1_COND": "",
"A1_CONDPAG": "",
"A1_CONTA": "",
"A1_CONTAB": "",
"A1_CONTATO": "",
"A1_CONTRIB": "",
"A1_CRDMA": "",
"A1_CTARE": "",
"A1_CXPOSTA": "",
"A1_DDD": "",
"A1_DDI": "",
"A1_DESC": 0,
"A1_DESCAM": "",
"A1_DESCPAG": "",
"A1_DEST_1": "",
"A1_DEST_2": "",
"A1_DEST_3": "",
"A1_DIASPAG": 0,
"A1_DSATIV1": "",
"A1_DSATIV2": "",
"A1_DSATIV3": "",
"A1_DSATIV4": "",
"A1_DSATIV5": "",
"A1_DSATIV6": "",
"A1_DSATIV7": "",
"A1_DSATIV8": "",
"A1_DSCREG": "",
"A1_EMAIL": "",
"A1_END": ".",
"A1_ENDCOB": "",
"A1_ENDENT": "",
"A1_ENDNOT": "",
"A1_ENDREC": "",
"A1_ENTID": "",
"A1_ENTORI": "",
"A1_EST": "SP",
"A1_ESTADO": "",
"A1_ESTC": "",
"A1_ESTE": "",
"A1_FAX": "",
"A1_FILDEB": "",
"A1_FILIAL": "D MG",
"A1_FILTRF": "",
"A1_FOMEZER": "",
"A1_FORMVIS": "",
"A1_FRETISS": "",
"A1_GRPTRIB": "",
"A1_GRPVEN": "",
"A1_HPAGE": "",
"A1_HRCAD": "",
"A1_HREXPO": "",
"A1_HRTRANS": "",
"A1_IBGE": "",
"A1_IDESTN": "",
"A1_IENCONT": "",
"A1_IMGUMOV": "",
"A1_INCISS": "",
"A1_INCULT": "",
"A1_INDRET": "",
"A1_INOVAUT": "",
"A1_INSCR": "",
"A1_INSCRM": "",
"A1_INSCRUR": "",
"A1_IRBAX": "",
"A1_LC": 0,
"A1_LCFIN": 0,
"A1_LOJA": "01",
"A1_LOJPRI": "",
"A1_MAIDUPL": 500,
"A1_MATR": 0,
"A1_MCOMPRA": 1500,
"A1_MENSAGE": "",
"A1_METR": 0,
"A1_MINIRF": "",
"A1_MOEDALC": 0,
"A1_MSALDO": 1500,
"A1_MSBLQL": "",
"A1_MSEXP": "",
"A1_MUN": ".",
"A1_MUNC": "",
"A1_MUNE": "",
"A1_NATUREZ": "",
"A1_NIF": "",
"A1_NOME": "CLIENTE PADRAO P/ ORCAMENTO",
"A1_NREDUZ": "ORCAMENTO",
"A1_NROCOM": 3,
"A1_NROPAG": 0,
"A1_NVESTN": 0,
"A1_OBS": "",
"A1_OBSERV": "",
"A1_ORIGCT": "",
"A1_OUTRMUN": "",
"A1_PAGATR": 0,
"A1_PAIS": "",
"A1_PAISDES": "",
"A1_PERCATM": 0,
"A1_PERFECP": 0,
"A1_PERFIL": 0,
"A1_PESSOA": "",
"A1_PFISICA": "",
"A1_PRF_OBS": "",
"A1_PRIOR": "",
"A1_PRSTSER": "",
"A1_RECCOFI": "",
"A1_RECCSLL": "",
"A1_RECFET": "",
"A1_RECINSS": "",
"A1_RECIRRF": "",
"A1_RECISS": "",
"A1_RECPIS": "",
"A1_REGDES": "",
"A1_REGESIM": "",
"A1_REGIAO": "",
"A1_REGPB": "",
"A1_RESFAT": "",
"A1_RFABOV": "",
"A1_RFACS": "",
"A1_RG": "",
"A1_RISCO": "",
"A1_RTEC": "",
"A1_SALDUP": 3000,
"A1_SALDUPM": 1500,
"A1_SALFIN": 0,
"A1_SALFINM": 0,
"A1_SALPED": 0,
"A1_SALPEDL": 0,
"A1_SATIV1": "",
"A1_SATIV2": "",
"A1_SATIV3": "",
"A1_SATIV4": "",
"A1_SATIV5": "",
"A1_SATIV6": "",
"A1_SATIV7": "",
"A1_SATIV8": "",
"A1_SIMPLES": "",
"A1_SIMPNAC": "",
"A1_SUBCOD": "",
"A1_SUFRAMA": "",
"A1_SUPER": "",
"A1_TABELA": "",
"A1_TDA": "",
"A1_TEL": "",
"A1_TELEX": "",
"A1_TEMVIS": 0,
"A1_TIMEKEE": "",
"A1_TIPCLI": "",
"A1_TIPO": "R",
"A1_TIPOCLI": "",
"A1_TIPPER": "",
"A1_TIPPRFL": "",
"A1_TITPROT": 0,
"A1_TMPSTD": "",
"A1_TMPVIS": "",
"A1_TPCAMP": "",
"A1_TPDP": "",
"A1_TPESSOA": "",
"A1_TPFRET": "",
"A1_TPISSRS": "",
"A1_TPJ": "",
"A1_TPNFSE": "",
"A1_TRANSF": "",
"A1_TRANSP": "",
"A1_TRIBFAV": "",
"A1_UNIDVEN": "",
"A1_USADDA": "",
"A1_VACUM": 1500,
"A1_VEND": "",
"A1_VINCULO": "",
"A1_VM_MARC": "",
"A1_VM_OBS": "",
"id": 6
},
"length": 0,
"messages": []
} |
...