Skip to content

parameters as array to remove parameter_order #175

Description

@m-mohr

Currently, the parameters are stored as object. As JSON objects have no order, we added parameter_order for programming languages without names parameters. parameter_order on the other hand is only required for 2+ parameters and needs special handling in many implementations. Therefore the idea came up to remove parameter_order and make the parameters object an array. The key could be moved to the object in the array.

Example

Before:

{
  "id": "product",
  "summary": "Multiplication of a sequence of numbers",
  "description": "This process is an exact alias for the `multiply` process. See ``multiply()`` for more information.",
  "categories": [
    "math",
    "reducer"
  ],
  "parameter_order": [
    "data",
    "ignore_nodata"
  ],
  "parameters": {
    "data": {
      "description": "See ``multiply()`` for more information.",
      "schema": {
        "type": "array",
        "items": {
          "type": [
            "number",
            "null"
          ]
        }
      },
      "required": true
    },
    "ignore_nodata": {
      "description": "See ``multiply()`` for more information.",
      "schema": {
        "type": "boolean",
        "default": true
      }
    }
  },
  "returns": {
    "description": "See ``multiply()`` for more information.",
    "schema": {
      "type": [
        "number",
        "null"
      ]
    }
  }
}

After:

{
  "id": "product",
  "summary": "Multiplication of a sequence of numbers",
  "description": "This process is an exact alias for the `multiply` process. See ``multiply()`` for more information.",
  "categories": [
    "math",
    "reducer"
  ],
  "parameters": [
    {
      "name": "data",
      "description": "See ``multiply()`` for more information.",
      "schema": {
        "type": "array",
        "items": {
          "type": [
            "number",
            "null"
          ]
        }
      },
      "required": true
    },
    {
      "name": "ignore_nodata",
      "description": "See ``multiply()`` for more information.",
      "schema": {
        "type": "boolean",
        "default": true
      }
    }
  ],
  "returns": {
    "description": "See ``multiply()`` for more information.",
    "schema": {
      "type": [
        "number",
        "null"
      ]
    }
  }
}

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    No projects

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions