Comments (10)
Now that I've actually read that doc page, it looks perfect!
from soda-carto.
from soda-carto.
This is almost working:
resources:
Resources:
ProxyResource:
Type: AWS::ApiGateway::Resource
Properties:
ParentId:
Fn::GetAtt:
- ApiGatewayRestApi # our default Rest API logical ID
- RootResourceId
PathPart: carto # the endpoint in your API that is set as proxy
RestApiId:
Ref: ApiGatewayRestApi
ProxyMethod:
Type: AWS::ApiGateway::Method
Properties:
ResourceId:
Ref: ProxyResource
RestApiId:
Ref: ApiGatewayRestApi
AuthorizationType: NONE
HttpMethod: GET # the method of your proxy. Is it GET or POST or ... ?
MethodResponses:
- StatusCode: 200
Integration:
IntegrationHttpMethod: GET
Type: HTTP
Uri: https://phl.carto.com/api/v2/sql # the URL you want to set a proxy to
IntegrationResponses:
- StatusCode: 200
The problem appears to be that API Gateway doesn't pass querystrings along by default, and it looks like the only way to enable them is to explicitly activate each one. Fortunately, with carto, we can activate q
, format
, and filename
, though what if carto adds another parameter? And perhaps there are others that simply aren't in the sql api docs? Definitely not ideal :-/
Need someone familiar with API Gateway / cloudformation to weigh in. I've asked in freenode ##aws and the og-aws slack.
EDIT: Also, I think that ideally it would be data.phila.gov/api/v2/sql?q=xxxx
for the URL schema, rather than /carto
. Not super firm on it but it seems to make sense to me. Note that one of the socrata url structures is /api/views/....
but that shouldn't matter.
EDIT2: Apparently you can make the resource pathpart {proxy+}
to use it like a "greedy parameter" and then use {proxy}
in the method uri, like https://phl.carto.com/{proxy}
. This may include querystrings. I haven't been able to get it to work. In particular, I was having trouble making the path something like /carto/{proxy+}
or /api/v2/{proxy+}
.
from soda-carto.
@andrewbt can you post the screenshots of the 3 configuration forms you got working when you get a chance? I can try to translate into cloudformation code this weekend.
from soda-carto.
Posted for help
from soda-carto.
Reposting screenshots from #37 :
Testable here: https://zsp6egcjhf.execute-api.us-east-1.amazonaws.com/dev/carto/v2/sql?q=select * from indego_stations where ST_DWITHIN(the_geom::geography, ST_GeographyFromText('POINT(-75.1636 39.9524)'),500)
from soda-carto.
API Gateway allows you to “export” an API (under Stages) as a Swagger YAML or JSON document. One of the options for creating an API is through importing a Swagger document.
If we can’t get serverless.yaml to work with the HTTP-proxy integration and other options we need there for the pass-through API, Swagger seems like a good alternative and will still let us keep “deployment in code” rather than through the AWS console UI.
from soda-carto.
https://blog.jayway.com/2016/09/18/introduction-swagger-cloudformation-api-gateway/ 👯
from soda-carto.
We bloody cracked it!!
I got swagger to work, but it ended up overwriting all the serverless functions. But then I noticed that the swagger itself was basically cloudformation. So that told me what pieces were missing from the original cloudformation. And it's working! :D
from soda-carto.
from soda-carto.
Related Issues (20)
- Basic filters may misinterpret numeric types, which will fail in postgres HOT 2
- Server fails when favicon.ico is requested by a browser HOT 1
- ?limit=10 throws error HOT 3
- Verify CORS is enabled
- GeoJSON doesn't need to convert geometry format
- Verify CSV encoding
- Include carto query in response headers HOT 1
- Research & document how to deploy to production HOT 1
- Research how to use a custom domain w/api gateway (plus SSL) HOT 3
- Roadmap: merge node-soda2-parser into this library
- Pass-through API route should support gzipped carto responses HOT 1
- Geometry field not renamed in SELECT or WHERE
- within_circle function not working as expected against carto HOT 3
- API Gateway has maximum 30 second timeout
- Make test suite compliant with PostGIS HOT 3
- Support generic field renaming
- Consider renaming "socrata-carto"
- within_box order of args is wrong
- `is not null` fails
- Spatial radius query not working HOT 2
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from soda-carto.