EDCD / EDDI

Companion application for Elite Dangerous
Other
447 stars 81 forks source link

Science responder? (Using the in-development Canonn API?) #1340

Open Tkael opened 5 years ago

Tkael commented 5 years ago

Servers: https://api.canonn.tech (live server) https://api.canonn.tech:2053 (beta staging / app test server)

Cannon API docs: https://api.canonn.tech/documentation#/ https://docs.canonn.tech/ (WIP, in development)

API request test platform (see schema ref. on right): https://api.canonn.tech:2053/graphql

Additional info about the STRAPI framework: https://strapi.io/documentation/3.x.x/ https://strapi.io/documentation/3.x.x/guides/filters.html#available-operators

Example GET queries: https://api.canonn.tech:2053/systems?systemName=Sol https://api.canonn.tech:2053/apsites?_limit=100&_start=0&system.systemName=PRU%20AED%20XO-R%20D4-50 https://api.canonn.tech:2053/excludefsses

GET endpoints for consideration:

POST endpoints for consideration:

Send data using schemas prefixed "New" from https://api.canonn.tech/documentation#/, using report status pending.

The API repo: https://github.com/canonn-science/CAPIv2-Strapi

The EDMC plugin repo: https://github.com/canonn-science/EDMC-Canonn

Other comments from DMehaffy: See https://api.canonn.tech/reporttypes for a list of the types of reports Canonn compiles. Everything except for these: GEN, GB, GS, GR, TB, and TS sites can be completely automated Kills and hyperdictions are also fairly automated though we have put those on hold until we get authentication sorted out.

Tkael commented 5 years ago

Additionally, Canonn has cloned EDDN to create a science-specific EDDN-style reporting tool. https://github.com/canonn-science/CEDDN/tree/master/schemas https://ceddn.canonn.tech/

Tkael commented 5 years ago

Placed on hold for the time being - Canonn's API is in too much flux to implement this right now.

jwvanderbeck commented 5 years ago

As an Explorer I'm curious how you see this new API benefiting exploration? I know nothing about Canonn.

Tkael commented 5 years ago

This would allow you to contribute data to support Cannon research efforts as you explore. Data about biological and geological surface sites you discover or new codex entries, for example, would be sent to Cannon. Cannon could then use the data to map known locations and make that data available to other commanders, to study trends and discover patterns correlated with the distribution of phenomena, etc.

vnttr commented 4 years ago

Is this more viable now? I am not a C# guy but would love to contribute if the APIs are stable enough.

Tkael commented 4 years ago

TBH, I'm not certain. We'll need to re-evaluate and see where they are at.

derrickmehaffy commented 4 years ago

So I just wanted to directly provide an update to the Canonn API. We are still going strong, I do have a number of planned updates that are currently pending (Waiting on EDMC and likewise our plugin to move over to Python 3).

To reiterate on how reports should be sent and which ones I think would be easy to implement (after talking with @Tkael on discord):

All of the Biology endpoints:

(Not counting TB here as it is a very specific data set)

All of the Geology endpoints:

Optionally you could support the reporting of GR/GS however as of right now the journal doesn't provide enough information for me to accept these reports automatically (all the geo/bio are accepted and verified automatically).

With the Geo/Bio the data structure you need to send is fairly straight forward (I have clipped this to the data that pertains only to senders such as EDDI)

{
  "userType": "pc",
  "reportType": "new",
  "systemName": "HD 63154",
  "bodyName": "HD 63154 B 3 A",
  "latitude": -20.7562, # Pull from status.json
  "longitude": -177.1881, # Pull from status.json
  "type": "codex_ent_seed", # Please use the codex name
  "cmdrName": "Criddles", # Required to be exactly how it is in game
  "cmdrComment": "If you support user interaction for comments, this is where they go",
  "isBeta": false, # This should be changed if you support using your client in a beta release of the game
  "clientVersion": "yourclient-0.0.1",
  "reportStatus": "pending" # MUST be pending, any other string here will be discarded and rejected
}

For reference on some of the enumeration and boolean values in that structure you can also see this on our docs (Docs are still a WIP): https://docs.canonn.tech/report/reporting-to-canonn.html#breakdown-of-report-fields


The other endpoints listed for now I would suggest just avoiding them, I am doing a bit of cleanup and reorganizing of some of those endpoints as they were added for testing/debug purposes to see how we want to handle the data. I'll provide more updates if I have other endpoints to suggest.

Tkael commented 4 years ago

Possibly also submit data to https://elite-igau.github.io/.