RESTを使用してGeoServerにレイヤーを作成する


16

この質問の可能な解決策の一部として、ユーザーIDとともにSQLステートメントを提供するRESTを介してGeoServerにレイヤーを作成します。

読むフィーチャタイプ作成して公開すると思いますか?これをすべてRESTで行う必要があります。誰かがコード例を持っていますか?


残りのインターフェイスを介してレイヤーを追加することはできないようですが、最終的に解決しましたか?エラーが表示されます:HTTPステータス
405-

回答:


41

GeoServer REST APIでできることは、具体的に文書化されておらず、コード例もありません。これらに取り組むための戦略は次のとおりです。

まず、ドキュメントから始めます。XMLまたはJSONでHTTP POSTを使用して、簡単な新しいレイヤーまたはワークスペースを作成する方法に慣れていることを確認してください。

次に、GeoServer UIを使用して、ドキュメントが存在しない必要なオブジェクト(この場合はフィーチャタイプ)を手動で作成します。

最後に、GeoServer RESTインデックス(http://your-server/restまたはhttp://your-server/geoserver/rest)を手動で参照します。作成した機能タイプが見つかるまで、インデックスを参照します。このリソースのURLに「.xml」または「.json」を追加すると、そのXMLまたはJSON表現が表示されます。

この表現は、POSTでAPIを介して機能タイプを作成するために必要なものです。表現のURLは、POSTに必要なURLです(たとえば、http://your-server/geoserver/rest/..../myFeatureTypeName.json)。

この戦略を使用して、GeoServerでリソースをプログラムで作成または構成する方法を見つけることができます。


2
ありがとうございました!簡単な答えで、さらに2時間あざけることができました
ラギヤセルバーフム

4
さらに、多くのパラメーターをスキップすることができ、GeoServerはそれらを把握します(UIと同様)。例えば。バウンディングボックス
-rcoup

1
うわー-これは私が見たこれの最高の説明です。
キヴェーリ

3
GeoServer 2.10.2を使用して、私は私がPOSTに必要なことがわかっfeaturetypes店の終点、例えばgeoserver/rest/workspaces/<workspacename>/datastores/<storename>/featuretypes/
スティーブンは鉛

関連するリンクが含まれた、明確なワークフローの説明。支持されました!:)
トニーギル

10

私はこれが古い質問であることを知っていますが、万が一私がそうであったように誰もが混乱している場合に備えて 重要な部分は、あなたからレイヤーを作成することができないということです// geoserver /休憩/層:HTTPエンドポイント。

ベクターレイヤーを追加する場合は、フィーチャタイプリソースを使用して行います。

http://docs.geoserver.org/stable/en/user/rest/api/featuretypes.html

投稿先:

/workspaces/<ws>/datastores/<ds>/featuretypes

どこにフィーチャタイプを配置するワークスペースで、使用するデータソースは新しいベクターフィーチャタイプ、つまりレイヤーを作成します。

@Rohanが正しい、POSTできることについて疑問がある場合、最も簡単な方法は、既存の機能タイプを照会することです。

/workspaces/<ws>/datastores/<ds>/featuretypes/<ft>.json 

既存の機能タイプをjsonとして返します。




0

レイヤーを追加するには、データストアとフィーチャタイプを定義する必要があります。スタイルと共に既に定義されていると仮定します(http://boundlessgeo.com/2012/10/adding-layers-to-geoserver-using-the-rest-api/のガイドで説明されているように、PUTにレイヤーを追加します)次のジオサーバーにリクエストを送信する必要があります。

http://geoserver.host/geoserver/rest/layers/NEW_LAYER_NAME

次のようなデータコンテンツの場合:

<layer>
  <name>NEW_LAYER_NAME</name>
  <type>VECTOR</type>
  <defaultStyle>
    <name>myStyle</name>
  </defaultStyle>
  <resource class="featureType">
    <name>myFeature</name>
  </resource>
</layer>

このブログでは、既存のレイヤーにスタイルを追加することについて説明していますが、これはPUTの設計目的であるため、理にかなっています。この方法で新しいレイヤーを作成することはできません。ここにドキュメントがあります:docs.geoserver.org/stable/en/user/rest/api/layers.html、rest / layersへのPUTは405を返します。/rest/layers/ <existing_layer>へのPUTは新しいレイヤーを作成するのではなく、特定のレイヤー。
-lostintranslation
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.