{"id":9922,"date":"2025-09-09T09:00:04","date_gmt":"2025-09-09T12:00:04","guid":{"rendered":"https:\/\/www.fernandoquadro.com.br\/html\/?p=9922"},"modified":"2025-09-08T18:21:34","modified_gmt":"2025-09-08T21:21:34","slug":"backup-e-restore-no-geoserver-via-api-rest","status":"publish","type":"post","link":"https:\/\/www.fernandoquadro.com.br\/html\/2025\/09\/09\/backup-e-restore-no-geoserver-via-api-rest\/","title":{"rendered":"Backup e Restore no GeoServer via API Rest"},"content":{"rendered":"<p>Prezado leitor,<\/p>\n<p>No dia a dia, \u00e9 comum termos diversos workspaces configurados, cada um com seus stores, layers e estilos associados. Em ambientes de produ\u00e7\u00e3o, manter c\u00f3pias de seguran\u00e7a \u00e9 fundamental para prevenir perdas em caso de falhas ou para replicar configura\u00e7\u00f5es em outro servidor.<\/p>\n<p><strong>1. Exportar (backup) um workspace<\/strong><\/p>\n<p>O GeoServer exp\u00f5e endpoints REST que permitem exportar a configura\u00e7\u00e3o completa de um workspace em formato .zip.<\/p>\n<pre>\r\n# Exporta o workspace \"meu_workspace\"\r\n# -u admin:geoserver \u2192 autentica\u00e7\u00e3o no GeoServer (usu\u00e1rio:senha)\r\n# -XGET \u2192 m\u00e9todo HTTP utilizado\r\n# -H \"Accept: application\/zip\" \u2192 define que a resposta ser\u00e1 um arquivo ZIP\r\n# URL do endpoint com ?recurse=true \u2192 inclui stores, layers e estilos associados\r\n# -o meu_workspace_backup.zip \u2192 salva o backup no arquivo ZIP local\r\n\r\ncurl -u admin:geoserver -XGET \\\r\n  -H \"Accept: application\/zip\" \\\r\n  http:\/\/localhost:8080\/geoserver\/rest\/workspaces\/meu_workspace?recurse=true \\\r\n  -o meu_workspace_backup.zip\r\n<\/pre>\n<p>Como resultado voc\u00ea ter\u00e1 um arquivo meu_workspace_backup.zip contendo toda a estrutura do workspace desejado.<\/p>\n<p><strong>2. Importar (restore) um workspace<\/strong><\/p>\n<p>Para restaurar, basta enviar o .zip de volta ao GeoServer via POST:<\/p>\n<pre>\r\n# Restaura o workspace a partir do backup ZIP\r\n# -u admin:geoserver \u2192 autentica\u00e7\u00e3o no GeoServer\r\n# -XPOST \u2192 m\u00e9todo HTTP utilizado\r\n# -H \"Content-type: application\/zip\" \u2192 indica que o arquivo enviado \u00e9 ZIP\r\n# --data-binary @meu_workspace_backup.zip \u2192 envia o arquivo bin\u00e1rio\r\n# URL do endpoint \/workspaces \u2192 local onde o workspace ser\u00e1 recriado\r\n\r\ncurl -u admin:geoserver -XPOST \\\r\n  -H \"Content-type: application\/zip\" \\\r\n  --data-binary @meu_workspace_backup.zip \\\r\n  http:\/\/localhost:8080\/geoserver\/rest\/workspaces\r\n<\/pre>\n<p>Esse processo recriar\u00e1 o workspace no GeoServer de destino, com toda a configura\u00e7\u00e3o previamente exportada.<\/p>\n<p><strong>3. Conclus\u00e3o<\/strong><\/p>\n<p>Com poucos comandos, conseguimos automatizar o processo de backup e restore de workspaces via REST API. Essa pr\u00e1tica \u00e9 indispens\u00e1vel para migra\u00e7\u00f5es, ambientes de testes e recupera\u00e7\u00e3o r\u00e1pida em caso de falhas.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Prezado leitor, No dia a dia, \u00e9 comum termos diversos workspaces configurados, cada um com seus stores, layers e estilos associados. Em ambientes de produ\u00e7\u00e3o, manter c\u00f3pias de seguran\u00e7a \u00e9 fundamental para prevenir perdas em caso de falhas ou para&#8230; <a class=\"more-link\" href=\"https:\/\/www.fernandoquadro.com.br\/html\/2025\/09\/09\/backup-e-restore-no-geoserver-via-api-rest\/\">Continue Reading &rarr;<\/a><\/p>\n","protected":false},"author":275,"featured_media":9953,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[24],"tags":[208,327],"class_list":["post-9922","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-gis","tag-geoserver","tag-rest-api"],"_links":{"self":[{"href":"https:\/\/www.fernandoquadro.com.br\/html\/wp-json\/wp\/v2\/posts\/9922","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=9922"}],"version-history":[{"count":11,"href":"https:\/\/www.fernandoquadro.com.br\/html\/wp-json\/wp\/v2\/posts\/9922\/revisions"}],"predecessor-version":[{"id":9955,"href":"https:\/\/www.fernandoquadro.com.br\/html\/wp-json\/wp\/v2\/posts\/9922\/revisions\/9955"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.fernandoquadro.com.br\/html\/wp-json\/wp\/v2\/media\/9953"}],"wp:attachment":[{"href":"https:\/\/www.fernandoquadro.com.br\/html\/wp-json\/wp\/v2\/media?parent=9922"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.fernandoquadro.com.br\/html\/wp-json\/wp\/v2\/categories?post=9922"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.fernandoquadro.com.br\/html\/wp-json\/wp\/v2\/tags?post=9922"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}