Cari semua data di GeoNetwork

Nov 04 2020

Saya ingin mendapatkan daftar semua metadata dari GeoNetwork. Menurut manual inihttps://geonetwork-opensource.org/manuals/2.10.4/eng/developer/xml_services/metadata_xml_search_retrieve.html#search-metadata-xml-search Saya menggunakan perintah curl ini

curl -X POST -u user:pass http://geonetwork_server/geonetwork/srv/eng/xml.search

Saya ingin melakukannya menggunakan Python, jadi saya menggunakan permintaan untuk mengirim permintaan POST ke url yang sama seperti di atas. Saya juga mengirim string ini sebagai parameter 'data' dari permintaan POST Python:

<?xml version="1.0" encoding="UTF-8"?><request/>

Respon tersebut datang dengan elemen ini, antara lain:

<response from="1" to="100" selected="0" maxPageSize="100">

Saya ingin mendapatkan daftar semua metadata. Permintaan di atas hanya mengembalikan 100 catatan GeoNetwork. Bagaimana cara mendapatkan seluruh daftar, atau halaman lain dari daftar ini?

Apakah tautan dari atas ini merupakan dokumentasi resmi untuk versi GeoNetwork terbaru? Saya menggunakan GN 3.10.

Jawaban

1 nmtoken Nov 04 2020 at 19:33

Anda bisa mendapatkan daftar semua metadata dalam instance GeoNetwork dengan melihat peta situs.

Lokasi peta situs di GeoNetwork telah berubah seiring waktu, tetapi Anda dapat menemukannya dengan melihat file robots.txt.

GeoNetwork menghasilkan satu di:

http://geonetwork_server/geonetwork/robots.txt

GN 3.10.n memiliki peta situs di:

http://geonetwork_server/geonetwork/srv/api/sitemap

GN 2.10.n memiliki peta situs di:

http://geonetwork_server/geonetwork/srv/eng/portal.sitemap

Jika Anda ingin mengikuti rute CSW maka Anda dapat menggunakan permintaan POST GetRecords seperti:

<?xml version="1.0"?>
<csw:GetRecords 
   xmlns:csw="http://www.opengis.net/cat/csw/2.0.2"
   xmlns:gmd="http://www.isotc211.org/2005/gmd"
   service="CSW" 
   version="2.0.2"
   resultType="results"
   maxRecords="25"
   startPosition="26">
  <csw:Query typeNames="gmd:MD_Metadata">
    <csw:Constraint version="1.1.0">
      <Filter xmlns="http://www.opengis.net/ogc"/>
    </csw:Constraint>
  </csw:Query>
</csw:GetRecords>

dengan Content-Type: application/xmlheader

ke http: // geonetwork_server / geonetwork / srv / eng / csw

Untuk mendapatkan rekor 26 hingga 51 dan mengulang ...

Jika file ini dipanggil getrecords-25to51.xmlmaka Anda dapat menggunakan POST melalui cURL seperti:

curl -X POST -H "Content-Type: application/xml" --data-binary "@getrecords-25to51.xml" http://geonetwork_server/geonetwork/srv/eng/csw

atau bahkan hanya

curl -H "Content-Type: application/xml" --data-binary "@getrecords-25to51.xml" http://geonetwork_server/geonetwork/srv/eng/csw