I use importer rest api.
So:
step 1: POST /geoserver/rest/imports (specifying target workspace and
target datastore) to obtain an importID
step2: POST /geoserver/rest/imports/<importID>/tasks (passing zip file
into body) to obtain a taskID (zip is uploaded into geoserver data dir and
is unzipped)
step3: PUT /geoserver/rest/imports/<importID>/tasks/<taskID>/target
to reset the target store for given taskID
step4: POST /geoserver/rest/imports/<importID> to execute import
This sequence of operations create a table named as passed shapefile into
given workspace/datastore;
if a table with same name already exists, created table is renamed
appending number.
If between step2 and step3 I execute PUT
geoserver/rest/imports/<importID>/tasks/<taskID>
passing
{
"layer": {
"name": "layer1",
"title": "layer1"
}
}
I could rename layer on geoserver with a different name than that of the
table.
If between step2 and step3 I execute PUT
geoserver/rest/imports/<importID>/tasks/<taskID>
passing
{
"task": {
"updateMode": "APPEND"
}
}
I could append data into existing table (named as uploaded shapefile)
I can't find a way to insert data from uploaded shapefile shape.shp into a
table which is called tableA (with same fields obviously)
It's possible?
Thanks
Giuseppe
Il giorno mar 10 mag 2022 alle ore 06:33 Jody Garnett <
[email protected]> ha scritto:
> You may also consider using the resource rest api to upload the file, and
> the the importer rest api in ingest (it offers greater control as Ian
> suggests).
>
> The upload you found determines a unique table name based on the provided
> content, so for your shapefile this is based on the filename.
>
> The file is here
> https://github.com/geoserver/geoserver/blob/main/src/restconfig/src/main/java/org/geoserver/rest/catalog/DataStoreFileController.java
> if
> you wish to troubleshoot.
>
> // does the feature type already exist in the target?
> try {
> targetDataStore.getSchema(featureTypeName);
> } catch (Exception e) {
> LOGGER.info(
> featureTypeName
> + " does not exist in data store "
> + storeName
> + ". Attempting to create it");
>
> // schema does not exist, create it by first
> creating an instance
> // of the source datastore and copying over its
> schema
>
> targetDataStore.createSchema(sourceDataStore.getSchema(featureTypeName));
> sourceDataStore.getSchema(featureTypeName);
> }
>
> --
> Jody Garnett
>
>
> On May 9, 2022 at 10:34:22 AM, Giuseppe Falcone <
> [email protected]> wrote:
>
>> Hi
>> thanks for the response.
>> I'm building a web application that must have this function.
>> From browser user upload a shapefile e I put into a db table.
>> I think REST API are perfect for this purpose.
>>
>> Giuseppe
>>
>> Il giorno lun 9 mag 2022 alle ore 19:22 Ian Turton <[email protected]>
>> ha scritto:
>>
>>> I'm not sure that you need to involve geoserver in this, Ogr2ogr would
>>> be quicker and easier to append a shapefile to a database. The GeoServer
>>> rest api is for creating data stores and layers etc not individual data
>>> management.
>>>
>>> Alternatively you might be able to use the importer extension to do this
>>> but I've not used that in anger
>>>
>>>
>>> Ian
>>>
>>> On Mon, 9 May 2022, 17:25 Giuseppe Falcone, <[email protected]>
>>> wrote:
>>>
>>>> Hi to all
>>>> I want with geoserver REST API put a shapefile into an existing postgis
>>>> table.
>>>> I know how to load a shapefile into a postgis database, but I don't
>>>> know how I could indicate a specific table in which append data.
>>>> I Have a shapefile named tableA.shp; it's possible put it's data into a
>>>> postgis table named tableB?
>>>> Thanks a lot
>>>>
>>>> Giuseppe
>>>>
>>>> _______________________________________________
>>>> Geoserver-users mailing list
>>>>
>>>> Please make sure you read the following two resources before posting to
>>>> this list:
>>>> - Earning your support instead of buying it, but Ian Turton:
>>>> http://www.ianturton.com/talks/foss4g.html#/
>>>> - The GeoServer user list posting guidelines:
>>>> http://geoserver.org/comm/userlist-guidelines.html
>>>>
>>>> If you want to request a feature or an improvement, also see this:
>>>> https://github.com/geoserver/geoserver/wiki/Successfully-requesting-and-integrating-new-features-and-improvements-in-GeoServer
>>>>
>>>>
>>>> [email protected]
>>>> https://lists.sourceforge.net/lists/listinfo/geoserver-users
>>>>
>>> _______________________________________________
>> Geoserver-users mailing list
>>
>> Please make sure you read the following two resources before posting to
>> this list:
>> - Earning your support instead of buying it, but Ian Turton:
>> http://www.ianturton.com/talks/foss4g.html#/
>> - The GeoServer user list posting guidelines:
>> http://geoserver.org/comm/userlist-guidelines.html
>>
>> If you want to request a feature or an improvement, also see this:
>> https://github.com/geoserver/geoserver/wiki/Successfully-requesting-and-integrating-new-features-and-improvements-in-GeoServer
>>
>>
>> [email protected]
>> https://lists.sourceforge.net/lists/listinfo/geoserver-users
>>
>
_______________________________________________
Geoserver-users mailing list
Please make sure you read the following two resources before posting to this
list:
- Earning your support instead of buying it, but Ian Turton:
http://www.ianturton.com/talks/foss4g.html#/
- The GeoServer user list posting guidelines:
http://geoserver.org/comm/userlist-guidelines.html
If you want to request a feature or an improvement, also see this:
https://github.com/geoserver/geoserver/wiki/Successfully-requesting-and-integrating-new-features-and-improvements-in-GeoServer
[email protected]
https://lists.sourceforge.net/lists/listinfo/geoserver-users