developmentseed / eoAPI

[Active Development] Earth Observation API (Metadata, Raster and Vector services)
https://eoapi.dev
MIT License
197 stars 21 forks source link

Tilejson endpoint redirects to the page which returns 400 Bad Request #18

Closed drnextgis closed 3 years ago

drnextgis commented 3 years ago
$ curl -L -v "http://localhost:8081/collections/openaerialmap/items/6136495327f4170005130793/tilejson.json?tile_scale=1"
*   Trying 127.0.0.1...
* TCP_NODELAY set
* Connected to localhost (127.0.0.1) port 8081 (#0)
> GET /collections/openaerialmap/items/6136495327f4170005130793/tilejson.json?tile_scale=1 HTTP/1.1
> Host: localhost:8081
> User-Agent: Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; Trident/5.0)
> Accept: */*
> Referer: 
> 
< HTTP/1.1 307 Temporary Redirect
< date: Thu, 09 Sep 2021 09:25:00 GMT
< server: uvicorn
< location: http://0.0.0.0:8082/stac/tilejson.json?url=stac%3A%2F%2FeyJpZCI6ICI2MTM2NDk1MzI3ZjQxNzAwMDUxMzA3OTMiLCAiYmJveCI6IFstODAuMzUwNDg2LCAyNy40MTgyODEsIC04MC4zNDYxNzQsIDI3LjQyNTg4NF0sICJ0eXBlIjogIkZlYXR1cmUiLCAibGlua3MiOiBbeyJyZWwiOiAiY29sbGVjdGlvbiIsICJocmVmIjogIm9wZW5hZXJpYWxtYXAiLCAidHlwZSI6ICJhcHBsaWNhdGlvbi9qc29uIn1dLCAiYXNzZXRzIjogeyJpbWFnZSI6IHsiaHJlZiI6ICJodHRwczovL29pbi1ob3Rvc20uczMuYW1hem9uYXdzLmNvbS82MTM2NDhjODI3ZjQxNzAwMDUxMzA3OTEvMC82MTM2NDhjODI3ZjQxNzAwMDUxMzA3OTIudGlmIiwgInR5cGUiOiAiaW1hZ2UvdGlmZjsgYXBwbGljYXRpb249Z2VvdGlmZjsgcHJvZmlsZT1jbG91ZC1vcHRpbWl6ZWQifX0sICJnZW9tZXRyeSI6IHsiYmJveCI6IFstODAuMzUwNDg2LCAyNy40MTgyODEsIC04MC4zNDYxNzQsIDI3LjQyNTg4NF0sICJ0eXBlIjogIk11bHRpUG9seWdvbiIsICJjb29yZGluYXRlcyI6IFtbW1stODAuMzUwNDQyLCAyNy40MjU4ODRdLCBbLTgwLjM1MDQ4NiwgMjcuNDE4MzAxXSwgWy04MC4zNDYyMTgsIDI3LjQxODI4MV0sIFstODAuMzQ2MTc0LCAyNy40MjU4NjRdLCBbLTgwLjM1MDQ0MiwgMjcuNDI1ODg0XV1dXX0sICJjb2xsZWN0aW9uIjogIm9wZW5hZXJpYWxtYXAiLCAicHJvcGVydGllcyI6IHsidGl0bGUiOiAiV2FsZ3JlZW5zIC0gMjAyMTowOTowNiAxMDoxNToxMSIsICJjb250YWN0IjogIldlcyBNYWd5YXIsd2VzbWFneWFyQGdtYWlsLmNvbSIsICJkYXRldGltZSI6IG51bGwsICJwbGF0Zm9ybSI6ICJ1YXYiLCAicHJvdmlkZXIiOiAiV2ViT0RNIiwgImVuZF9kYXRldGltZSI6ICIyMDIxLTA5LTA2VDA2OjE1OjExWiIsICJzdGFydF9kYXRldGltZSI6ICIyMDIxLTA5LTA2VDA1OjE1OjExWiJ9LCAic3RhY192ZXJzaW9uIjogIjEuMC4wIiwgInN0YWNfZXh0ZW5zaW9ucyI6IFtdfQ%3D%3D
< transfer-encoding: chunked
< 
* Ignoring the response-body
* Connection #0 to host localhost left intact
* Issue another request to this URL: 'http://0.0.0.0:8082/stac/tilejson.json?url=stac%3A%2F%2FeyJpZCI6ICI2MTM2NDk1MzI3ZjQxNzAwMDUxMzA3OTMiLCAiYmJveCI6IFstODAuMzUwNDg2LCAyNy40MTgyODEsIC04MC4zNDYxNzQsIDI3LjQyNTg4NF0sICJ0eXBlIjogIkZlYXR1cmUiLCAibGlua3MiOiBbeyJyZWwiOiAiY29sbGVjdGlvbiIsICJocmVmIjogIm9wZW5hZXJpYWxtYXAiLCAidHlwZSI6ICJhcHBsaWNhdGlvbi9qc29uIn1dLCAiYXNzZXRzIjogeyJpbWFnZSI6IHsiaHJlZiI6ICJodHRwczovL29pbi1ob3Rvc20uczMuYW1hem9uYXdzLmNvbS82MTM2NDhjODI3ZjQxNzAwMDUxMzA3OTEvMC82MTM2NDhjODI3ZjQxNzAwMDUxMzA3OTIudGlmIiwgInR5cGUiOiAiaW1hZ2UvdGlmZjsgYXBwbGljYXRpb249Z2VvdGlmZjsgcHJvZmlsZT1jbG91ZC1vcHRpbWl6ZWQifX0sICJnZW9tZXRyeSI6IHsiYmJveCI6IFstODAuMzUwNDg2LCAyNy40MTgyODEsIC04MC4zNDYxNzQsIDI3LjQyNTg4NF0sICJ0eXBlIjogIk11bHRpUG9seWdvbiIsICJjb29yZGluYXRlcyI6IFtbW1stODAuMzUwNDQyLCAyNy40MjU4ODRdLCBbLTgwLjM1MDQ4NiwgMjcuNDE4MzAxXSwgWy04MC4zNDYyMTgsIDI3LjQxODI4MV0sIFstODAuMzQ2MTc0LCAyNy40MjU4NjRdLCBbLTgwLjM1MDQ0MiwgMjcuNDI1ODg0XV1dXX0sICJjb2xsZWN0aW9uIjogIm9wZW5hZXJpYWxtYXAiLCAicHJvcGVydGllcyI6IHsidGl0bGUiOiAiV2FsZ3JlZW5zIC0gMjAyMTowOTowNiAxMDoxNToxMSIsICJjb250YWN0IjogIldlcyBNYWd5YXIsd2VzbWFneWFyQGdtYWlsLmNvbSIsICJkYXRldGltZSI6IG51bGwsICJwbGF0Zm9ybSI6ICJ1YXYiLCAicHJvdmlkZXIiOiAiV2ViT0RNIiwgImVuZF9kYXRldGltZSI6ICIyMDIxLTA5LTA2VDA2OjE1OjExWiIsICJzdGFydF9kYXRldGltZSI6ICIyMDIxLTA5LTA2VDA1OjE1OjExWiJ9LCAic3RhY192ZXJzaW9uIjogIjEuMC4wIiwgInN0YWNfZXh0ZW5zaW9ucyI6IFtdfQ%3D%3D'
*   Trying 0.0.0.0...
* TCP_NODELAY set
* Connected to 0.0.0.0 (127.0.0.1) port 8082 (#1)
> GET /stac/tilejson.json?url=stac%3A%2F%2FeyJpZCI6ICI2MTM2NDk1MzI3ZjQxNzAwMDUxMzA3OTMiLCAiYmJveCI6IFstODAuMzUwNDg2LCAyNy40MTgyODEsIC04MC4zNDYxNzQsIDI3LjQyNTg4NF0sICJ0eXBlIjogIkZlYXR1cmUiLCAibGlua3MiOiBbeyJyZWwiOiAiY29sbGVjdGlvbiIsICJocmVmIjogIm9wZW5hZXJpYWxtYXAiLCAidHlwZSI6ICJhcHBsaWNhdGlvbi9qc29uIn1dLCAiYXNzZXRzIjogeyJpbWFnZSI6IHsiaHJlZiI6ICJodHRwczovL29pbi1ob3Rvc20uczMuYW1hem9uYXdzLmNvbS82MTM2NDhjODI3ZjQxNzAwMDUxMzA3OTEvMC82MTM2NDhjODI3ZjQxNzAwMDUxMzA3OTIudGlmIiwgInR5cGUiOiAiaW1hZ2UvdGlmZjsgYXBwbGljYXRpb249Z2VvdGlmZjsgcHJvZmlsZT1jbG91ZC1vcHRpbWl6ZWQifX0sICJnZW9tZXRyeSI6IHsiYmJveCI6IFstODAuMzUwNDg2LCAyNy40MTgyODEsIC04MC4zNDYxNzQsIDI3LjQyNTg4NF0sICJ0eXBlIjogIk11bHRpUG9seWdvbiIsICJjb29yZGluYXRlcyI6IFtbW1stODAuMzUwNDQyLCAyNy40MjU4ODRdLCBbLTgwLjM1MDQ4NiwgMjcuNDE4MzAxXSwgWy04MC4zNDYyMTgsIDI3LjQxODI4MV0sIFstODAuMzQ2MTc0LCAyNy40MjU4NjRdLCBbLTgwLjM1MDQ0MiwgMjcuNDI1ODg0XV1dXX0sICJjb2xsZWN0aW9uIjogIm9wZW5hZXJpYWxtYXAiLCAicHJvcGVydGllcyI6IHsidGl0bGUiOiAiV2FsZ3JlZW5zIC0gMjAyMTowOTowNiAxMDoxNToxMSIsICJjb250YWN0IjogIldlcyBNYWd5YXIsd2VzbWFneWFyQGdtYWlsLmNvbSIsICJkYXRldGltZSI6IG51bGwsICJwbGF0Zm9ybSI6ICJ1YXYiLCAicHJvdmlkZXIiOiAiV2ViT0RNIiwgImVuZF9kYXRldGltZSI6ICIyMDIxLTA5LTA2VDA2OjE1OjExWiIsICJzdGFydF9kYXRldGltZSI6ICIyMDIxLTA5LTA2VDA1OjE1OjExWiJ9LCAic3RhY192ZXJzaW9uIjogIjEuMC4wIiwgInN0YWNfZXh0ZW5zaW9ucyI6IFtdfQ%3D%3D HTTP/1.1
> Host: 0.0.0.0:8082
> User-Agent: Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; Trident/5.0)
> Accept: */*
> Referer: http://localhost:8081/collections/openaerialmap/items/6136495327f4170005130793/tilejson.json?tile_scale=1
> 
< HTTP/1.1 400 Bad Request
< date: Thu, 09 Sep 2021 09:25:00 GMT
< server: uvicorn
< content-length: 76
< content-type: application/json
< 
* Connection #1 to host 0.0.0.0 left intact
{"detail":"assets must be defined either via expression or assets options."}
vincentsarago commented 3 years ago

{"detail":"assets must be defined either via expression or assets options."}

well for STAC in order to have a valid tiles url you HAVE TO pass assets={you stac asset} option

drnextgis commented 3 years ago

The thing is I don't see the corresponding parameter here: image

vincentsarago commented 3 years ago

Yes it's kinda complex because in TiTiler you can define asset using either assets= or expression= https://developmentseed.org/titiler/endpoints/stac/#tilesjson

It's a design choice we made in TiTiler and sadly I'm not aware of a solution to bring this info in openapi spec

vincentsarago commented 3 years ago

Oh I see now, that's on the STAC part which redirect to the raster endpoint. Because we didn't wanted to add titiler as a dependency I was lazy and did not add the dependency here https://github.com/developmentseed/eoAPI/blob/master/src/eoapi/stac/eoapi/stac/extension.py#L52 as we have in titiler https://github.com/developmentseed/titiler/blob/master/src/titiler/core/titiler/core/factory.py#L399-L403

vincentsarago commented 3 years ago

I'm going to re-open because there is a simple fix to this but please be more descriptive in the issue next time 🙏

vincentsarago commented 3 years ago

closed in https://github.com/developmentseed/eoAPI/commit/ca30c2ece7d6f3591364b3540fb6bf14f808854b