{"id":4677,"date":"2016-01-15T13:14:05","date_gmt":"2016-01-15T16:14:05","guid":{"rendered":"http:\/\/www.fernandoquadro.com.br\/html\/?p=4677"},"modified":"2018-09-25T11:18:06","modified_gmt":"2018-09-25T14:18:06","slug":"configurando-o-geoserver-via-rest-api","status":"publish","type":"post","link":"https:\/\/www.fernandoquadro.com.br\/html\/2016\/01\/15\/configurando-o-geoserver-via-rest-api\/","title":{"rendered":"Configurando o GeoServer via REST API"},"content":{"rendered":"<p>O GeoServer fornece uma interface RESTful atrav\u00e9s da qual podemos configurar uma inst\u00e2ncia usando chamadas HTTP simples. Usando a interface REST, podemos configurar o GeoServer sem a necessidade de usar a interface de administra\u00e7\u00e3o Web.<\/p>\n<p>Para realizar as opera\u00e7\u00f5es utilizaremos o <a href=\"http:\/\/curl.haxx.se\/\">cURL<\/a> (uma ferramenta de linha de comando para executar solicita\u00e7\u00f5es HTTP e transfer\u00eancia de arquivos), por\u00e9m elas podem ser adaptadas para qualquer ferramenta ou biblioteca HTTP.<\/p>\n<p>Para este exemplo, baixei o <a href=\"http:\/\/curl.haxx.se\/download.html\">cURL (curl.exe)<\/a>, e o coloquei na pasta C:\\Util\\curl, assim como o arquivo zip com o shape (roads.zip) e o arquivo sld (roads_style.sld).<\/p>\n<p><strong>1. Adi\u00e7\u00e3o de novo workspace<\/strong><\/p>\n<p>Para iniciar, vou criar um workspace com o nome &#8220;acme&#8221;. Para isso vou executar o comando abaixo na linha de comando atrav\u00e9s do cURL:<\/p>\n<pre>\r\ncurl&nbsp;-v&nbsp;-u&nbsp;admin:geoserver&nbsp;-XPOST&nbsp;-H&nbsp;\"Content-type:&nbsp;text\/xml\"\r\n&nbsp;&nbsp;-d&nbsp;\"&lt;workspace&gt;&lt;name&gt;acme&lt;\/name&gt;&lt;\/workspace&gt;\"\r\n&nbsp;&nbsp;http:\/\/localhost:8080\/geoserver\/rest\/workspaces\r\n<\/pre>\n<p>Se for executado corretamento, voc\u00ea dever\u00e1 receber a seguinte mensagem:<\/p>\n<pre>\r\n&lt;&nbsp;HTTP\/1.1&nbsp;201&nbsp;Created\r\n...\r\n&lt;&nbsp;Location:&nbsp;http:\/\/localhost:8080\/geoserver\/rest\/workspaces\/acme\r\n<\/pre>\n<p>Para verificar o que foi criado no GeoServer voc\u00ea pode executar o seguinte comando:<\/p>\n<pre>\r\ncurl&nbsp;-v&nbsp;-u&nbsp;admin:geoserver&nbsp;-XGET&nbsp;-H&nbsp;\"Accept:&nbsp;text\/xml\"\r\n&nbsp;&nbsp;http:\/\/localhost:8080\/geoserver\/rest\/workspaces\/acme\r\n<\/pre>\n<p><strong>2. Adi\u00e7\u00e3o de um shapefile<\/strong><\/p>\n<p>Neste passo, iremos criar um novo store a partir de um arquivo shapefile.<\/p>\n<p>Para o exemplo \u00e9 necess\u00e1rio o arquivo states.zip para criar um novo store com o nome de states.<\/p>\n<pre>\r\ncurl&nbsp;-v&nbsp;-u&nbsp;admin:geoserver&nbsp;-XPUT&nbsp;-H&nbsp;\"Content-type:&nbsp;application\/zip\"\r\n&nbsp;&nbsp;--data-binary&nbsp;@roads.zip\r\n&nbsp;&nbsp;http:\/\/localhost:8080\/geoserver\/rest\/workspaces\/acme\/datastores\/roads\/file.shp\r\n<\/pre>\n<p>O identificador states na URI refere-se ao nome da store a ser criada. Para criar com outro nome, a URI seria http:\/\/localhost:8080\/geoserver\/rest\/workspaces\/acme\/datastores\/outronome\/file.shp<\/p>\n<p>Se for executado corretamento, voc\u00ea dever\u00e1 receber a seguinte mensagem:<\/p>\n<pre>\r\n< HTTP\/1.1 201 Created\r\n<\/pre>\n<p>Para verificar o que foi criado no GeoServer voc\u00ea pode executar o seguinte comando:<\/p>\n<pre>\r\ncurl&nbsp;-v&nbsp;-u&nbsp;admin:geoserver&nbsp;-XGET\r\n&nbsp;&nbsp;http:\/\/localhost:8080\/geoserver\/rest\/workspaces\/acme\/datastores\/roads.xml\r\n<\/pre>\n<p>Quando um shapefile \u00e9 adicionado, automaticamente \u00e9 criada uma featureType. A informa\u00e7\u00e3o desta featureType, pode ser obtida atrav\u00e9s do seguinte comando:<\/p>\n<pre>\r\ncurl&nbsp;-v&nbsp;-u&nbsp;admin:geoserver&nbsp;-XGET\r\n&nbsp;&nbsp;http:\/\/localhost:8080\/geoserver\/rest\/workspaces\/acme\/datastores\/roads\/featuretypes\/roads.xml\r\n<\/pre>\n<p><strong>3. Adi\u00e7\u00e3o de um estilo<\/strong><\/p>\n<p>Primeiro vamos criar a estrutura do novo estilo: <\/p>\n<pre>\r\ncurl&nbsp;-v&nbsp;-u&nbsp;admin:geoserver&nbsp;-XPOST&nbsp;-H&nbsp;\"Content-type:&nbsp;text\/xml\"\r\n&nbsp;&nbsp;-d&nbsp;\"&lt;style&gt;&lt;name&gt;roads_style&lt;\/name&gt;&lt;filename&gt;roads.sld&lt;\/filename&gt;&lt;\/style&gt;\"\r\n&nbsp;&nbsp;http:\/\/localhost:8080\/geoserver\/rest\/styles\r\n<\/pre>\n<p>Se for executado corretamento, voc\u00ea dever\u00e1 receber a seguinte mensagem:<\/p>\n<pre>\r\n< HTTP\/1.1 201 Created\r\n<\/pre>\n<p>Agora que a estrutura j\u00e1 est\u00e1 criada, vamos fazer o upload do arquivo SLD:<\/p>\n<pre>\r\ncurl&nbsp;-v&nbsp;-u&nbsp;admin:geoserver&nbsp;-XPUT&nbsp;-H&nbsp;\"Content-type:&nbsp;application\/vnd.ogc.sld+xml\"\r\n&nbsp;&nbsp;-d&nbsp;@roads.sld&nbsp;http:\/\/localhost:8080\/geoserver\/rest\/styles\/roads_style\r\n<\/pre>\n<p>Se for executado corretamento, voc\u00ea dever\u00e1 receber a seguinte mensagem:<\/p>\n<pre>\r\n< HTTP\/1.1 200 OK\r\n<\/pre>\n<p><strong>4. Vinculando um estilo a uma camada<\/strong><\/p>\n<p>Para finalizar vamos vincular a camada ao estilo que foi criado:<\/p>\n<pre>\r\ncurl&nbsp;-v&nbsp;-u&nbsp;admin:geoserver&nbsp;-XPUT&nbsp;-H&nbsp;\"Content-type:&nbsp;text\/xml\"\r\n&nbsp;&nbsp;-d&nbsp;\"&lt;layer&gt;&lt;defaultStyle&gt;&lt;name&gt;roads_style&lt;\/name&gt;&lt;\/defaultStyle&gt;&lt;\/layer&gt;\"\r\n&nbsp;&nbsp;http:\/\/localhost:8080\/geoserver\/rest\/layers\/acme:roads\r\n<\/pre>\n<p>Se for executado corretamento, voc\u00ea dever\u00e1 receber a seguinte mensagem:<\/p>\n<pre>\r\n< HTTP\/1.1 200 OK\r\n<\/pre>\n<p><strong>Parab\u00e9ns!<\/strong> Agora voc\u00ea j\u00e1 tem sua layer publicada no GeoServer.<\/p>\n<p><strong>5. Apagando uma camada<\/strong><\/p>\n<p>Caso voc\u00ea queira apagar a configura\u00e7\u00e3o de alguma camada, voc\u00ea pode fazer utilizando o comando abaixo, mas lembre que se sua fonte de dados (store) for shapefile, este comando desfaz apenas a configura\u00e7\u00e3o da camada, e n\u00e3o exclui o shapefile na pasta de dados do GeoServer.<\/p>\n<pre>\r\ncurl&nbsp;-u&nbsp;admin:geoserver&nbsp;-XDELETE&nbsp;http:\/\/localhost:8080\/geoserver\/rest\/layers\/acme:roads\r\n<\/pre>\n<p>Fonte: <a href=\"http:\/\/docs.geoserver.org\/latest\/en\/user\/rest\/examples\/curl.html\" target=\"_blank\">GeoServer Documentation - cURL<\/a><\/p>\n","protected":false},"excerpt":{"rendered":"<p>O GeoServer fornece uma interface RESTful atrav\u00e9s da qual podemos configurar uma inst\u00e2ncia usando chamadas HTTP simples. Usando a interface REST, podemos configurar o GeoServer sem a necessidade de usar a interface de administra\u00e7\u00e3o Web. Para realizar as opera\u00e7\u00f5es utilizaremos&#8230; <a class=\"more-link\" href=\"https:\/\/www.fernandoquadro.com.br\/html\/2016\/01\/15\/configurando-o-geoserver-via-rest-api\/\">Continue Reading &rarr;<\/a><\/p>\n","protected":false},"author":275,"featured_media":5674,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[7,24],"tags":[208,223,327],"class_list":["post-4677","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-geoserver","category-gis","tag-geoserver","tag-gis","tag-rest-api"],"_links":{"self":[{"href":"https:\/\/www.fernandoquadro.com.br\/html\/wp-json\/wp\/v2\/posts\/4677","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.fernandoquadro.com.br\/html\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.fernandoquadro.com.br\/html\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.fernandoquadro.com.br\/html\/wp-json\/wp\/v2\/users\/275"}],"replies":[{"embeddable":true,"href":"https:\/\/www.fernandoquadro.com.br\/html\/wp-json\/wp\/v2\/comments?post=4677"}],"version-history":[{"count":23,"href":"https:\/\/www.fernandoquadro.com.br\/html\/wp-json\/wp\/v2\/posts\/4677\/revisions"}],"predecessor-version":[{"id":6576,"href":"https:\/\/www.fernandoquadro.com.br\/html\/wp-json\/wp\/v2\/posts\/4677\/revisions\/6576"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.fernandoquadro.com.br\/html\/wp-json\/wp\/v2\/media\/5674"}],"wp:attachment":[{"href":"https:\/\/www.fernandoquadro.com.br\/html\/wp-json\/wp\/v2\/media?parent=4677"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.fernandoquadro.com.br\/html\/wp-json\/wp\/v2\/categories?post=4677"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.fernandoquadro.com.br\/html\/wp-json\/wp\/v2\/tags?post=4677"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}