aeternity / aesophia_http

ISC License
6 stars 9 forks source link

Inline options object in requests #90

Open davidyuk opened 2 years ago

davidyuk commented 2 years ago

For example, /compile accepts a Contract that defined as:

    "Contract": {
      "properties": {
        "code": {
          "type": "string"
        },
        "options": {
          "$ref": "#/definitions/CompileOpts"
        }
      },
      "required": [
        "code",
        "options"
      ],
      "type": "object"
    },
    "CompileOpts": {
      "properties": {
        "backend": {
          "description": "Compiler backend; fate | aevm",
          "enum": [
            "fate",
            "aevm"
          ],
          "type": "string"
        },
        "file_system": {
          "description": "An explicit file system, mapping file names to file content",
          "properties": {

          },
          "type": "object"
        },
        "src_file": {
          "description": "Name of contract source file - only used in error messages",
          "type": "string"
        }
      },
      "type": "object"
    },

can we inline options to have Contract looking like below?

    "Contract": {
      "properties": {
        "code": {
          "type": "string"
        },
        "backend": {
          "description": "Compiler backend; fate | aevm",
          "enum": [
            "fate",
            "aevm"
          ],
          "type": "string"
        },
        "file_system": {
          "description": "An explicit file system, mapping file names to file content",
          "properties": {},
          "type": "object"
        },
        "src_file": {
          "description": "Name of contract source file - only used in error messages",
          "type": "string"
        }
      },
      "required": [
        "code"
      ],
      "type": "object"
    },