Versões comparadas

Chave

  • Esta linha foi adicionada.
  • Esta linha foi removida.
  • A formatação mudou.

...

Nota
titleVersão

 Disponível à partir da versão 12.1.6 da linha RM.

RMSDataServer

Todos os dataserver's do RM poderão ser acessados via RESTful através da classe RMSRestDataServer. O contrato dessa classe é publicado no endereço http://<servidor>:8051/RMSRestDataServer/getAvailableServices e os dados são transmitido no formato json. Os métodos disponibilizados são:

MétodoURLEndpointVerboDescrição
GetAvailableServices/getavailableservices?name={name}&start={start}&limit={limit}GETLista de todos os serviços REST dos RMSDataServer's.
GetExternalGrammar/service/{serviceName}/schemaGETLista o schema dos dados retornados pelo serviço.

GetWADL

/service/{serviceName}GETLista o WADL do serviço.
/rest/{dataServerName}POSTCria um registro utilizando o dataserver especificado.Get/rest/{dataServerName}/{id}DELETERemove um registro utilizando o dataserver especificado./rest/{dataServerName}/{id}GETRetorna o registro do dataserver especificado.
GetAll/rest/{dataServerName}?start={start}&limit={limit}&search={search}GETRetorna lista os registros do dataserver especificado.
Create/rest/{dataServerName}/{id}PUT 
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
linenumberstrue
#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á http://localhost:8084/html-protheus/rest/fwhtmlmodel/customer, sendo os métodos HTTP disponíveis:

MétodoQueryparamPathparamDescriçãoExemplo da URL 
GET

start (inicio da listagem)

limit (quantidade de linhas, valor padrão 10) 

 retorno de listagem do ModelRetornhttp://localhost:8084/hmlt-protheus/rest/fwhtmlmodel/customer?start=1&limit=50
GET id (Recno da linha da tabela)retorno dos dados do Modelhttp://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": []
}

 

 

POSTCria um registro utilizando o dataserver especificado.
Delete/rest/{dataServerName}/{id}DELETERemove um registro utilizando o dataserver especificado.
Update/rest/{dataServerName}/{id}PUTAtualiza o registro do dataserver especificado.

...