Árvore de páginas

Para o exemplo do CRUD passo a passo iremos utiliza um serviço REST pronto, com o seguinte WADL:

WADL para serviço de CRUD
<application xmlns="http://wadl.dev.java.net/2009/02">
	<grammars>
		<include href="application.wadl/xsd0.xsd">
			<doc title="Generated" xml:lang="en"/>
		</include>
	</grammars>
	<resources base="http://jvd0000506:8080/datasul-rest/resources/dbo/">
		<resource path="/adbo/boad176na">
			<method id="getAll" name="GET">
				<request>
					<param xmlns:xs="http://www.w3.org/2001/XMLSchema" name="start" style="query" type="xs:int" default="0"/>
					<param xmlns:xs="http://www.w3.org/2001/XMLSchema" name="limit" style="query" type="xs:int" default="10"/>
				</request>
				<response>
					<ns2:representation xmlns:ns2="http://wadl.dev.java.net/2009/02" xmlns="" element="Return" mediaType="application/json"/>
				</response>
			</method>
			<method id="create" name="POST">
				<request>
					<ns2:representation xmlns:ns2="http://wadl.dev.java.net/2009/02" xmlns="" element="RowObject_ad176naVO" mediaType="application/json"/>
				</request>
				<response>
					<ns2:representation xmlns:ns2="http://wadl.dev.java.net/2009/02" xmlns="" element="Return" mediaType="application/json"/>
				</response>
			</method>
			<resource path="{pcod-mensagem}">
				<param xmlns:xs="http://www.w3.org/2001/XMLSchema" name="pcod-mensagem" style="template" type="xs:string"/>
				<method id="delete" name="DELETE">
					<response>
						<ns2:representation xmlns:ns2="http://wadl.dev.java.net/2009/02" xmlns="" element="Return" mediaType="application/json"/>
					</response>
				</method>
				<method id="get" name="GET">
					<response>
						<ns2:representation xmlns:ns2="http://wadl.dev.java.net/2009/02" xmlns="" element="Return" mediaType="application/json"/>
					</response>
				</method>
				<method id="update" name="PUT">
					<request>
						<ns2:representation xmlns:ns2="http://wadl.dev.java.net/2009/02" xmlns="" element="RowObject_ad176naVO" mediaType="application/json"/>
					</request>
					<response>
						<ns2:representation xmlns:ns2="http://wadl.dev.java.net/2009/02" xmlns="" element="Return" mediaType="application/json"/>
					</response>
				</method>
			</resource>
		</resource>
	</resources>
</application>

 

Pelo WADL podemos verificar que este CRUD disponibiliza os serviços REST de GET para buscar os registros da tabela (getAll), GET para um registro da tabela (get), POST para gravar um registro novo na tabela (create), PUT para salvar um registro alterado (update) e DELETE para eliminar um registro da tabela (delete)

A URL de busca de registros da tabela http://localhost:8080/datasul-rest/resources/dbo/adbo/boad176na usando o metodo HTTP GET irá retornar o seguinte resultado:

Resultado do metodo getAll
{
	"messages" : [],
	"length" : 110,
	"data" : [{
			"cod-mensagem" : 0,
			"descricao" : "Sem Mensagem Padrao",
			"texto-mensag" : "",
			"char-1" : "",
			"char-2" : "",
			"dec-1" : 0,
			"dec-2" : 0,
			"int-1" : 0,
			"int-2" : 0,
			"log-1" : false,
			"log-2" : false,
			"data-1" : null,
			"data-2" : null,
			"check-sum" : "",
			"r-Rowid" : "003D056900010000574845524520282850524F47524553535F5245434944203D200000000F0008FFFB0000000000000000000000000000000129292000"
		}, {
			"cod-mensagem" : 1,
			"descricao" : "IPI-TRIBUTADO 5%",
			"texto-mensag" : "* IPI - ALIQUOTA 5%  DECRETO 4542/02\n* TRANSPORTE DE CARGA PROPRIA.",
			"char-1" : "",
			"char-2" : "",
			"dec-1" : 0,
			"dec-2" : 0,
			"int-1" : 0,
			"int-2" : 0,
			"log-1" : false,
			"log-2" : false,
			"data-1" : null,
			"data-2" : null,
			"check-sum" : "",
			"r-Rowid" : "003D056900010000574845524520282850524F47524553535F5245434944203D200000000F0008FFFB0000000000000000000000000000000229292000"
		}, {
			"cod-mensagem" : 2,
			"descricao" : "TRANSPORTE",
			"texto-mensag" : "* TRANSPORTE DE CARGA PROPRIA",
			"char-1" : "",
			"char-2" : "",
			"dec-1" : 0,
			"dec-2" : 0,
			"int-1" : 0,
			"int-2" : 0,
			"log-1" : false,
			"log-2" : false,
			"data-1" : null,
			"data-2" : null,
			"check-sum" : "",
			"r-Rowid" : "003D056900010000574845524520282850524F47524553535F5245434944203D200000000F0008FFFB0000000000000000000000000000000329292000"
		}, {
			"cod-mensagem" : 3,
			"descricao" : "VENDA A ORDEM",
			"texto-mensag" : "S/FATURAMENTO EMITIDA  NOS TERMOS - ART. 129  DO RICMS",
			"char-1" : "",
			"char-2" : "",
			"dec-1" : 0,
			"dec-2" : 0,
			"int-1" : 0,
			"int-2" : 0,
			"log-1" : false,
			"log-2" : false,
			"data-1" : null,
			"data-2" : null,
			"check-sum" : "",
			"r-Rowid" : "003D056900010000574845524520282850524F47524553535F5245434944203D200000000F0008FFFB0000000000000000000000000000000429292000"
		}, {
			"cod-mensagem" : 4,
			"descricao" : "S/FATURAMENTO",
			"texto-mensag" : "S/FATURAMENTO EMITIDA TERMOS DO ART129 DO RICMS-DECRETO 45490/2000.",
			"char-1" : "",
			"char-2" : "",
			"dec-1" : 0,
			"dec-2" : 0,
			"int-1" : 0,
			"int-2" : 0,
			"log-1" : false,
			"log-2" : false,
			"data-1" : null,
			"data-2" : null,
			"check-sum" : "",
			"r-Rowid" : "003D056900010000574845524520282850524F47524553535F5245434944203D200000000F0008FFFB0000000000000000000000000000000529292000"
		}, {
			"cod-mensagem" : 5,
			"descricao" : "CACEX/EXPORTACAO",
			"texto-mensag" : "NUM.REG EXPORTADOR CACEX: .........PORTARIA CAT N* 16/86     SAIDA NAOTRIB CONF ART 7*,PARAG 1 RICMS/2000IPI- IMUNE II DO ART. 18 DO DEC. 2637/98",
			"char-1" : "",
			"char-2" : "",
			"dec-1" : 0,
			"dec-2" : 0,
			"int-1" : 0,
			"int-2" : 0,
			"log-1" : false,
			"log-2" : false,
			"data-1" : null,
			"data-2" : null,
			"check-sum" : "",
			"r-Rowid" : "003D056900010000574845524520282850524F47524553535F5245434944203D200000000F0008FFFB0000000000000000000000000000000629292000"
		}, {
			"cod-mensagem" : 6,
			"descricao" : "SUCATA / RESIDUO",
			"texto-mensag" : "ICMS - DIFERIDO CONF ART 392 DORICMS/2000-DEC. 45490/2000.\n VENDA NO ESTADO EM QUE SE ENCONTRA",
			"char-1" : "",
			"char-2" : "",
			"dec-1" : 0,
			"dec-2" : 0,
			"int-1" : 0,
			"int-2" : 0,
			"log-1" : false,
			"log-2" : false,
			"data-1" : null,
			"data-2" : null,
			"check-sum" : "",
			"r-Rowid" : "003D056900010000574845524520282850524F47524553535F5245434944203D200000000F0008FFFB0000000000000000000000000000000729292000"
		}, {
			"cod-mensagem" : 7,
			"descricao" : "TESTE IPI TESTE DE API",
			"texto-mensag" : "TEXTO aaaaaeeeeeeeeeeeeeeeeeeeeeds   dsd   eeeeeeeeeeeeeaaaaaaaaaaafgtfrg\n\nffffffffff\n\ngfdgfdg",
			"char-1" : "Teste de char1",
			"char-2" : "",
			"dec-1" : 0,
			"dec-2" : 0,
			"int-1" : 0,
			"int-2" : 0,
			"log-1" : false,
			"log-2" : false,
			"data-1" : null,
			"data-2" : null,
			"check-sum" : "",
			"r-Rowid" : "003D056900010000574845524520282850524F47524553535F5245434944203D200000000F0008FFFB000000000000000000000000000000AA29292000"
		}, {
			"cod-mensagem" : 8,
			"descricao" : "ATIVO/ EMPRESTIMO",
			"texto-mensag" : "ICMS - NAO INCIDENCIA ART 7 IX  DORICMS-DEC. 45.490/2000.\n",
			"char-1" : "",
			"char-2" : "",
			"dec-1" : 0,
			"dec-2" : 0,
			"int-1" : 0,
			"int-2" : 0,
			"log-1" : false,
			"log-2" : false,
			"data-1" : null,
			"data-2" : null,
			"check-sum" : "",
			"r-Rowid" : "003D056900010000574845524520282850524F47524553535F5245434944203D200000000F0008FFFB0000000000000000000000000000000829292000"
		}, {
			"cod-mensagem" : 9,
			"descricao" : "IPI",
			"texto-mensag" : "* IPI - ALIQUTA 5%  DECRETO 4542/02\n* TRANSPORTE DE CARGA PROPRIA.",
			"char-1" : "",
			"char-2" : "",
			"dec-1" : 0,
			"dec-2" : 0,
			"int-1" : 0,
			"int-2" : 0,
			"log-1" : false,
			"log-2" : false,
			"data-1" : null,
			"data-2" : null,
			"check-sum" : "",
			"r-Rowid" : "003D056900010000574845524520282850524F47524553535F5245434944203D200000000F0008FFFB0000000000000000000000000000000929292000"
		}
	]
}

 

A URL de busca de um registro da tabela com a chave de valor 1 é http://localhost:8080/datasul-rest/resources/dbo/adbo/boad176na/1 usando o metodo HTTP GET irá retornar o seguinte resultado:

Resultado do metodo get
{
	"messages" : [],
	"length" : 0,
	"data" : {
		"cod-mensagem" : 1,
		"descricao" : "IPI-TRIBUTADO 5%",
		"texto-mensag" : "* IPI - ALIQUOTA 5%  DECRETO 4542/02\n* TRANSPORTE DE CARGA PROPRIA.",
		"char-1" : "",
		"char-2" : "",
		"dec-1" : 0,
		"dec-2" : 0,
		"int-1" : 0,
		"int-2" : 0,
		"log-1" : false,
		"log-2" : false,
		"data-1" : null,
		"data-2" : null,
		"check-sum" : "",
		"r-Rowid" : "003D056900010000574845524520282850524F47524553535F5245434944203D200000000F0008FFFB0000000000000000000000000000000229292000"
	}
}

 

A URL de criar um registro da tabela http://localhost:8080/datasul-rest/resources/dbo/adbo/boad176na usando o metodo HTTP POST, no Payload da requisição deverá ser enviado um objeto JSON com o conteudo dos campos que serão gravados no novo registro na tabela.

Payload para o metodo create
{
	"cod-mensagem" : 123,
	"descricao" : "MENSAGEM 123",
	"texto-mensag" : "TEXTO DA MENSAGEM 123"
}

O resultado do create com sucesso será:

Resultado do metodo create
{
"messages": [],
"length": null,
"data": null
}

 

A URL de alterar um registro da tabela http://localhost:8080/datasul-rest/resources/dbo/adbo/boad176na/123 usando o metodo HTTP PUT, no Payload da requisição deverá ser enviado um objeto JSON com o conteudo dos campos atualizados que serão gravados no novo registro na tabela.

Payload para o metodo update
{
	"texto-mensag" : "TEXTO DA MENSAGEM 123 com alteração"
}

O resultado do update com sucesso será:

Resultado do metodo update
{
"messages": [],
"length": null,
"data": null
}

 

A URL de eliminar um registro da tabela http://localhost:8080/datasul-rest/resources/dbo/adbo/boad176na/123 usando o metodo HTTP DELETE, o resultad da operação com sucesso é:

O resultado do update com sucesso será:

Resultado do metodo delete
{
"messages": [],
"length": null,
"data": null
}

 

O proximo passo da criação do CRUD, apos o serviço REST estando OK é definir a estrutura do CRUD.

  • Sem rótulos