205ff3002c
* Add gzip to API.py * pytest for gzip * fix pytest * Update test_api.py * Add gzip to server block of configuration files * Update api.py to include gzip opts from config Update logic behind gzip compression such that compression will only happen when gzip in the Accept-Encoding request header and config.server.gzip is True. Use server charset for encoding/decoding and include charset in Content-Type when compressed. * Update pytest to use gzip config options Update pytest to test with (gzip in Accept-Encoding & server.gzip = False), (gzip in Accept-Encoding & server.gzip = True), (gzip not in Accept-Encoding & server.gzip = True) * Better Content Negotiation (#7) * Change content negotiation in _get_format() * Add to pytest and force h to always be string * Force F_JSON to default response * Update test_api.py for utf-16 encoding * better content negotiation pytest. * Add comments to pytest * Fix flake 8 * Improve docstring for gzip decorator function
211 lines
7.3 KiB
YAML
211 lines
7.3 KiB
YAML
# =================================================================
|
|
#
|
|
# Authors: Just van den Broecke <justb4@gmail.com>>
|
|
# Jorge Samuel Mendes de Jesus <jorge.dejesus@geocat.net>
|
|
# Tom Kraldis <tomkralidis@gmail.com>
|
|
#
|
|
# Copyright (c) 2019 Just van den Broecke
|
|
# Copyright (c) 2019 Jorge Samuel Mendes de Jesus
|
|
# Copyright (c) 2020 Tom Kralidis
|
|
#
|
|
# Permission is hereby granted, free of charge, to any person
|
|
# obtaining a copy of this software and associated documentation
|
|
# files (the "Software"), to deal in the Software without
|
|
# restriction, including without limitation the rights to use,
|
|
# copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
# copies of the Software, and to permit persons to whom the
|
|
# Software is furnished to do so, subject to the following
|
|
# conditions:
|
|
#
|
|
# The above copyright notice and this permission notice shall be
|
|
# included in all copies or substantial portions of the Software.
|
|
#
|
|
# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
|
# EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
|
|
# OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
|
|
# NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
|
|
# HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
|
|
# WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
|
|
# FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
|
|
# OTHER DEALINGS IN THE SOFTWARE.
|
|
#
|
|
# =================================================================
|
|
|
|
server:
|
|
bind:
|
|
host: 0.0.0.0
|
|
port: 5000
|
|
url: http://localhost:5000/
|
|
mimetype: application/json; charset=UTF-8
|
|
encoding: utf-8
|
|
gzip: false
|
|
language: en-US
|
|
cors: true
|
|
pretty_print: true
|
|
limit: 10
|
|
# templates: /path/to/templates
|
|
map:
|
|
url: https://maps.wikimedia.org/osm-intl/{z}/{x}/{y}.png
|
|
attribution: '<a href="https://wikimediafoundation.org/wiki/Maps_Terms_of_Use">Wikimedia maps</a> | Map data © <a href="https://openstreetmap.org/copyright">OpenStreetMap contributors</a>'
|
|
|
|
logging:
|
|
level: ERROR
|
|
#logfile: /tmp/pygeoapi.log
|
|
|
|
metadata:
|
|
identification:
|
|
title: pygeoapi default instance
|
|
description: pygeoapi provides an API to geospatial data
|
|
keywords:
|
|
- geospatial
|
|
- data
|
|
- api
|
|
keywords_type: theme
|
|
terms_of_service: https://creativecommons.org/licenses/by/4.0/
|
|
url: http://example.org
|
|
license:
|
|
name: CC-BY 4.0 license
|
|
url: https://creativecommons.org/licenses/by/4.0/
|
|
provider:
|
|
name: Organization Name
|
|
url: https://pygeoapi.io
|
|
contact:
|
|
name: Lastname, Firstname
|
|
position: Position Title
|
|
address: Mailing Address
|
|
city: City
|
|
stateorprovince: Administrative Area
|
|
postalcode: Zip or Postal Code
|
|
country: Country
|
|
phone: +xx-xxx-xxx-xxxx
|
|
fax: +xx-xxx-xxx-xxxx
|
|
email: you@example.org
|
|
url: Contact URL
|
|
hours: Hours of Service
|
|
instructions: During hours of service. Off on weekends.
|
|
role: pointOfContact
|
|
|
|
resources:
|
|
obs:
|
|
type: collection
|
|
title: Observations
|
|
description: My cool observations
|
|
keywords:
|
|
- observations
|
|
- monitoring
|
|
links:
|
|
- type: text/csv
|
|
rel: canonical
|
|
title: data
|
|
href: https://github.com/mapserver/mapserver/blob/branch-7-0/msautotest/wxs/data/obs.csv
|
|
hreflang: en-US
|
|
- type: text/csv
|
|
rel: alternate
|
|
title: data
|
|
href: https://raw.githubusercontent.com/mapserver/mapserver/branch-7-0/msautotest/wxs/data/obs.csv
|
|
hreflang: en-US
|
|
extents:
|
|
spatial:
|
|
bbox: [-180,-90,180,90]
|
|
crs: http://www.opengis.net/def/crs/OGC/1.3/CRS84
|
|
temporal:
|
|
begin: 2000-10-30T18:24:39Z
|
|
end: 2007-10-30T08:57:29Z
|
|
trs: http://www.opengis.net/def/uom/ISO-8601/0/Gregorian
|
|
providers:
|
|
- type: feature
|
|
name: CSV
|
|
data: tests/data/obs.csv
|
|
id_field: id
|
|
geometry:
|
|
x_field: long
|
|
y_field: long
|
|
|
|
ne_110m_populated_places_simple:
|
|
type: collection
|
|
title: Populated Places
|
|
description: Point symbols with name attributes. Includes all admin-0 capitals and some other major cities. We favor regional significance over population census in determining our selection of places. Use the scale rankings to filter the number of towns that appear on your map.
|
|
keywords:
|
|
- populated places
|
|
- cities
|
|
- towns
|
|
links:
|
|
- type: text/html
|
|
rel: canonical
|
|
title: information
|
|
href: http://www.naturalearthdata.com/downloads/110m-cultural-vectors/110m-populated-places/
|
|
hreflang: en-US
|
|
- type: application/gzip
|
|
rel: canonical
|
|
title: download
|
|
href: http://www.naturalearthdata.com/http//www.naturalearthdata.com/download/110m/cultural/ne_110m_populated_places_simple.zip
|
|
hreflang: en-US
|
|
extents:
|
|
spatial:
|
|
bbox: [-180,-90,180,90]
|
|
crs: http://www.opengis.net/def/crs/OGC/1.3/CRS84
|
|
providers:
|
|
- type: feature
|
|
name: Elasticsearch
|
|
#Note elastic_search is the docker container of ES the name is defined in the docker-compose.yml
|
|
data: http://elastic_search:9200/ne_110m_populated_places_simple
|
|
id_field: geonameid
|
|
|
|
lakes:
|
|
type: collection
|
|
title: Large Lakes
|
|
description: lakes of the world, public domain
|
|
keywords:
|
|
- lakes
|
|
links:
|
|
- type: text/html
|
|
rel: canonical
|
|
title: information
|
|
href: http://www.naturalearthdata.com/
|
|
hreflang: en-US
|
|
extents:
|
|
spatial:
|
|
bbox: [-180,-90,180,90]
|
|
crs: http://www.opengis.net/def/crs/OGC/1.3/CRS84
|
|
temporal:
|
|
begin: 2011-11-11
|
|
end: null # or empty
|
|
trs: http://www.opengis.net/def/uom/ISO-8601/0/Gregorian
|
|
providers:
|
|
- type: feature
|
|
name: GeoJSON
|
|
data: tests/data/ne_110m_lakes.geojson
|
|
id_field: id
|
|
|
|
countries:
|
|
type: collection
|
|
title: Countries in the world
|
|
description: Countries of the world
|
|
keywords:
|
|
- countries
|
|
- natural eart
|
|
links:
|
|
- type: text/html
|
|
rel: canonical
|
|
title: information
|
|
href: http://www.naturalearthdata.com/
|
|
hreflang: en-US
|
|
extents:
|
|
spatial:
|
|
bbox: [-180,-90,180,90]
|
|
crs: http://www.opengis.net/def/crs/OGC/1.3/CRS84
|
|
temporal:
|
|
begin:
|
|
end: null # or empty
|
|
providers:
|
|
- type: feature
|
|
name: SQLiteGPKG
|
|
data: tests/data/ne_110m_admin_0_countries.sqlite
|
|
id_field: ogc_fid
|
|
table: ne_110m_admin_0_countries
|
|
|
|
hello-world:
|
|
type: process
|
|
processor:
|
|
name: HelloWorld
|