이 질문 에 대한 가능한 해결책의 일부로 사용자 ID와 함께 SQL 문을 제공하는 REST를 통해 GeoServer에 레이어를 만들고 싶습니다.
읽기 기능 유형을 작성하여 공개 할 것이라고 생각 합니까? REST 에서이 작업을 모두 수행해야합니다. 누구든지 코드 예제가 있습니까?
이 질문 에 대한 가능한 해결책의 일부로 사용자 ID와 함께 SQL 문을 제공하는 REST를 통해 GeoServer에 레이어를 만들고 싶습니다.
읽기 기능 유형을 작성하여 공개 할 것이라고 생각 합니까? REST 에서이 작업을 모두 수행해야합니다. 누구든지 코드 예제가 있습니까?
답변:
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에서 리소스를 프로그래밍 방식으로 생성하거나 구성하는 방법을 파악할 수 있습니다.
featuretypes
하여 상점 의 엔드 포인트에 POST해야한다는 것을 알았습니다 . 예 :geoserver/rest/workspaces/<workspacename>/datastores/<storename>/featuretypes/
나는 이것이 오래된 질문이라는 것을 알고 있지만 다른 사람이 내가 혼란 스러울 경우를 대비하여. 중요한 부분은 당신이에서 레이어를 만들 수 없다는 것입니다 // 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으로 반환합니다.
가장 좋은 참조는 사용자 안내서에 있습니다. http://docs.geoserver.org/stable/en/user/rest/examples/index.html
계층을 추가하려면 데이터 스토어 및 기능 유형을 정의해야합니다. 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>