labthings / python-labthings

Python implementation of LabThings, based on the Flask microframework
GNU General Public License v3.0
18 stars 2 forks source link

Action schema defines links inconsistently with Thing Description #324

Open rwb27 opened 1 year ago

rwb27 commented 1 year ago

Thing Description defines the links property of a Thing to be an array of objects, each with "rel" and "href" properties (among others). Would it make sense for Actions to follow suit? This isn't a normative part of the spec, but it would feel quite sensible. It would mean changing from:

{
  "status": "completed",
  "output": true,
  "links": {
    "self": {
      "href": "https://my_host/actions/id"
    }
  }
}

to

{
  "status": "completed",
  "output": true,
  "links": [
    {"rel": "self", "href":"https://my_host/actions/id"},
  ]
}

The resulting object is slightly less convenient (I can't just do action["links"]["self"]["href"]) but it is more in keeping with the standard.

This is really a decision for LabThings-FastAPI, but I'm keen not to break compatibility if there was a good reason for doing it the current way.