Utilisation du module REST¶
Cette section contient un certain nombre d’exemples qui illustrent différentes utilisations de l’API de configuration de données REST.
Le module de configuration de GeoServer REST utilise les principes REST pour exposer des services permettant de modifier le catalogue, en particulier pour gérer les espaces de travail, de magasins, de couches, de styles et de groupes.
Note
L’extension de configuration REST doit normalement être installé séparément, il n’est pas sorti de la boîte.
Les exemples de cette section utilisent le cURL utilitaire, qui est un outil de ligne de commande très pratique pour l’exécution des requêtes HTTP et de transfert de fichiers.
Ouvrez le Terminal et entrez la commande suivante:
curl -u admin:geoserver -v -XPOST -H "Content-type: text/xml" -d "<workspace><name>myworkspace</name></workspace>" http://localhost:8083/geoserver/rest/workspaces
la réponse contient les éléments suivants :
![]()
Créer un nouvel workspace via REST
Allez dans la section
Workspaces
via l’interface Web pour montrer le nouvel workspace crééGET demande de nouveaux détails du workspace
Obtenez les nouveaux détails de workspace entrant ce qui suit:
curl -u admin:geoserver -XGET -H "Accept: text/xml" http://localhost:8083/geoserver/rest/workspaces/myworkspace
Demande GET pour obtenir de nouveaux détails d’workspace
Publier le shapefile
pointlands
à l’aide du workspacemyworkspace
entrant ce qui suitLinux:
curl -u admin:geoserver -H "Content-type: application/zip" -T /.../pointlands.zip http://localhost:8083/geoserver/rest/workspaces/myworkspace/datastores/pointlands/file.shp
Windows:
curl -u admin:geoserver -H "Content-type: application/zip" -T /.../pointlands.zip http://localhost:8083/geoserver/rest/workspaces/myworkspace/datastores/pointlands/file.shp
Aller à la Couche Preview pour montrer les couches dans une carte OpenLayers.
Montrant la nouvelle couche créé
Les nouvelles couches créés
Note
Si vous avez déjà suivi le passage de la sécurité de l’atelier , la couche ne sera pas accessible car l’administrateur n’a pas les rôles. Retournez dans la section sécurité de service et supprimer la règle limitant les requêtes GetMap.
Récupère le magasin de données créé au format XML entrant ce qui suit:
curl -u admin:geoserver -XGET http://localhost:8083/geoserver/rest/workspaces/myworkspace/datastores/pointlands.xml
<dataStore> <name>pointlands</name> <type>Shapefile</type> <enabled>true</enabled> <workspace> <name>myworkspace</name> <atom:link xmlns:atom="http://www.w3.org/2005/Atom" rel="alternate" href="http://localhost:8083/geoserver/rest/workspaces/myworkspace.xml" type="application/xml"/> </workspace> <connectionParameters> <entry key="url">file:${TRAINING_ROOT}/geoserver_data/data/myworkspace/pointlands/</entry> <entry key="namespace">http://myworkspace</entry> </connectionParameters> <__default>false</__default> <featureTypes> <atom:link xmlns:atom="http://www.w3.org/2005/Atom" rel="alternate" href="http://localhost:8083/geoserver/rest/workspaces/myworkspace/datastores/pointlands/featuretypes.xml" type="application/xml"/> </featureTypes> </dataStore>
Note
Par défaut lorsqu’un shapefile est téléchargé une ressource de type de fonction et la couche associée sont automatiquement créés.
Récupérer la couche comme XML entrant ce qui suit:
curl -u admin:geoserver -XGET http://localhost:8083/geoserver/rest/layers/myworkspace:pointlands.xml
<layer> <name>pointlands</name> <type>VECTOR</type> <defaultStyle> <name>point</name> <atom:link xmlns:atom="http://www.w3.org/2005/Atom" rel="alternate" href="http://localhost:8083/geoserver/rest/styles/point.xml" type="application/xml"/> </defaultStyle> <resource class="featureType"> <name>pointlands</name> <atom:link xmlns:atom="http://www.w3.org/2005/Atom" rel="alternate" href="http://localhost:8083/geoserver/rest/workspaces/myworkspace/datastores/pointlands/featuretypes/pointlands.xml" type="application/xml"/> </resource> <attribution> <logoWidth>0</logoWidth> <logoHeight>0</logoHeight> </attribution> </layer>
Note
Lorsque le calque est créé un style par défaut nommé
point
est attribué à lui.Créer un nouveau style appelé
landmarks
avec le SLD suivant (à l’aide de l’interface utilisateur Admin de GeoServer) :<?xml version="1.0" encoding="ISO-8859-1"?> <StyledLayerDescriptor version="1.0.0" xsi:schemaLocation="http://www.opengis.net/sld StyledLayerDescriptor.xsd" xmlns="http://www.opengis.net/sld" xmlns:ogc="http://www.opengis.net/ogc" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> <!-- a Named Layer is the basic building block of an SLD document --> <NamedLayer> <Name>default_point</Name> <UserStyle> <!-- Styles can have names, titles and abstracts --> <Title>Default Point</Title> <Abstract>A sample style that draws a point</Abstract> <!-- FeatureTypeStyles describe how to render different features --> <!-- A FeatureTypeStyle for rendering points --> <FeatureTypeStyle> <Rule> <Name>rule1</Name> <Title>Red Square</Title> <Abstract>A 6 pixel square with a red fill and no stroke</Abstract> <PointSymbolizer> <Graphic> <Mark> <WellKnownName>triangle</WellKnownName> <Stroke> <CssParameter name="stroke">#66FF66</CssParameter> </Stroke> <Fill> <CssParameter name="fill">#66FF66</CssParameter> </Fill> </Mark> <Size>10</Size> </Graphic> </PointSymbolizer> </Rule> </FeatureTypeStyle> </UserStyle> </NamedLayer> </StyledLayerDescriptor>
Appliquer le style de
landmarks
existant à la couche crééemyworkspace:pointlands
(cette opération n’écrase pas la définition de l’ensemble de la couche,la met à jour à plutot):curl -u admin:geoserver -XPUT -H "Content-type: text/xml" -d "<layer><defaultStyle><name>landmarks</name></defaultStyle><enabled>true</enabled></layer>" http://localhost:8083/geoserver/rest/layers/myworkspace:pointlands
Aller à la Couche Preview pour montrer les couches avec le nouveau style
landmarks
.Affichage des couches avec le nouveau style créé
landmarks