I'm building a PHP class to interact with my GeoServer. I'm following the limited Documentation, this GeoServer REST API with PHP post and also this great advice. I've successfully created/deleted a Workspace.
But when I try to upload a Shapefile it fails because no dataStore
endpoint exists in my Workspace (I get a 404 response from cURL). So, I guess I should create a Store before trying to upload a Shapefile.
I've failed at finding any information regarding this issue (both here at GIS SE or Googling) but I've successfully created a Store with some RevEng:
I've checked the JSON for my GeoServer's default Store:
{
"dataStore": {
"name": "cntry_shp",
"type": "Directory of spatial files (shapefiles)",
"enabled": true,
"workspace": {
"name": "opengeo",
"href": "http:\/\/0.0.0.0:8080\/geoserver\/rest\/workspaces\/opengeo.json"
},
"connectionParameters": {
"entry": [
{
"@key": "memory mapped buffer",
"$": "false"
},
{
"@key": "timezone",
"$": "America\/Vancouver"
},
{
"@key": "fstype",
"$": "shape-ng"
},
{
"@key": "create spatial index",
"$": "true"
},
{
"@key": "charset",
"$": "ISO-8859-1"
},
{
"@key": "filetype",
"$": "shapefile"
},
{
"@key": "cache and reuse memory maps",
"$": "true"
},
{
"@key": "enable spatial index",
"$": "true"
},
{
"@key": "url",
"$": "file:workspaces\/opengeo\/data"
},
{
"@key": "namespace",
"$": "http:\/\/opengeo.org"
}
]
},
"_default": false,
"featureTypes": "http:\/\/0.0.0.0:8080\/geoserver\/rest\/workspaces\/opengeo\/datastores\/cntry_shp\/featuretypes.json"
}
}
I copied it, replacing its name and workspace, and inserted it in my system with a cURL call at the endpoint:
rest/workspaces/MY_WORKSPACE/datastores
Then I tried to upload a Shapefile to it, and it failed. Anyway, I don't think this is the right way to do this.
Do you know which is the right way or, at least, do you know some examples or documentation?