d-exclaimation/pioneer

Working example using BananaCakePop with localhost for Pioneer?

Closed this issue · 4 comments

I was trying to get BananaCakePop's desktop Mac application to work with Pioneer as discussed in the docs. I did not change anything with CORS. Is this necessary? I'm not sure what I'm doing wrong. Thanks!

My endpoint info should be correct.
Screen Shot 2022-06-20 at 4 52 01 PM

Every time it tries to fetch the schema it shows this error:

Screen Shot 2022-06-20 at 4 56 42 PM

And the logs show the following:
Screen Shot 2022-06-20 at 4 58 02 PM

CORS is enforced by the browser when making cross-origin HTTP requests initiated from scripts.

I am pretty sure you don't need to configure CORS for the desktop app of BananaCakePop.

Regardless, BananaCakePop is built with Electron. You should be able to view the DevTools (View / Toogle Developer Tools), check if CORS was applied, and inspect the network request made by the app.

I am not sure why you ran into issues with fetching the schema, I highly recommend checking the network activity and see why the introspection query failed

Looking at the error message, it seemed like Banana Cake Pop did manage to find the Vapor server but it was making a request to an unknown path / route.

You might want to check what path your GraphQL Server is served at. If you call server.applyMiddleware, you are able to set a path like (/api, /graphql) where the server is served at, the default is /graphql if you don't provide anything.

server.applyMiddleware(router, at: "...")

I have tried it on a simple example server and it worked fine.

Screenshot 2022-06-21 at 2 22 33 PM

This example server served GraphQL on http://localhost:8080/graphql.

So I figured out what I was doing wrong.

I was originally doing this:
server.applyMiddleware(on: app.grouped("main", "v1"))

I switched it to this:
server.applyMiddleware(on: app.grouped("main"), at: "v1")

I didn't realize about the "graphql" default path. So I guess it was hosting it at http://localhost:8080/main/v1/graphql