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 표현이 표시됩니다.

이 표현은 API를 통해 기능 유형을 작성하기 위해 POST에 필요한 것입니다. 표현의 URL은 POST에 필요한 URL입니다 (예 :) http://your-server/geoserver/rest/..../myFeatureTypeName.json.

이 전략을 사용하여 GeoServer에서 리소스를 프로그래밍 방식으로 생성하거나 구성하는 방법을 파악할 수 있습니다.


2
감사합니다! 쉬운 대답과 방금 저를 조롱하는 또 다른 2 시간을 저장
Ragi Yaser Burhum

4
또한 많은 매개 변수를 건너 뛸 수 있으며 GeoServer는 UI에서와 같이이를 파악합니다. 예. 경계 상자
rcoup

1
와우-이것은 내가 본 이것에 대한 최고의 설명입니다.
Kieveli

3
GeoServer 2.10.2를 사용 featuretypes하여 상점 의 엔드 포인트에 POST해야한다는 것을 알았습니다 . 예 :geoserver/rest/workspaces/<workspacename>/datastores/<storename>/featuretypes/
Stephen Lead

명확한 워크 플로우 설명, 관련 링크 포함. 찬성했습니다! :)
tony gil

10

나는 이것이 오래된 질문이라는 것을 알고 있지만 다른 사람이 내가 혼란 스러울 경우를 대비하여. 중요한 부분은 당신이에서 레이어를 만들 수 없다는 것입니다 // geoserver / 휴식 / 층 : HTTP 엔드 포인트.

벡터 레이어를 추가하려는 경우 기능 유형 리소스를 통해 수행됩니다.

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

다음에 대한 POST :

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

피처 유형을 유지하려는 작업 공간은 어디에 있으며, 사용할 데이터 소스는 새로운 벡터 피처 유형, 즉 레이어를 생성합니다.

POST 할 수있는 것이 궁금하다면 @Rohan이 정확합니다. 가장 쉬운 방법은 기존 기능 유형, IE에 대한 GET을 쿼리하는 것입니다.

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

기존 기능 유형을 json으로 반환합니다.




0

계층을 추가하려면 데이터 스토어 및 기능 유형을 정의해야합니다. PUT에 레이어를 추가하기 위해 http://boundlessgeo.com/2012/10/adding-layers-to-geoserver-using-the-rest-api/ 의 가이드에 설명 된대로 스타일과 함께 이미 정의되어 있다고 가정 요청은 다음 위치에서 지오 서버로 보내 져야합니다 :

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 문서는 다음과 같습니다. 휴식 / 계층에 대한 PUT은 405를 반환합니다. / rest / layers / <existing_layer>에 대한 PUT은 새 레이어를 만들지 말고
lostintranslation 17
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.