Skip to content

Binding Data for integers is inconsistent. #377

Closed
@brendandburns

Description

@brendandburns

Investigative information

Please provide the following:
N/A - this issue is reproducible locally.

Repro steps

Provide the steps required to reproduce the problem:

Run the following Typescript function:

import { AzureFunction, Context, HttpRequest } from "@azure/functions"

const httpTrigger: AzureFunction = async function (context: Context, req: HttpRequest): Promise<void> {
    context.res = {
        body:context.bindingData
    }
}

With the following function.json

{
  "bindings": [
    {
      "authLevel": "anonymous",
      "type": "httpTrigger",
      "direction": "in",
      "name": "req",
      "route": "periods/{id}",
      "methods": [
        "get"
      ]
    },
    {
      "type": "http",
      "direction": "out",
      "name": "res"
    }
  ],
  "scriptFile": "../dist/TestFunc/index.js"
}

Run func start

Hit the URL with 0 as the parameter:

curl <function-url>/api/periods/0

Output is:

{
  "invocationId": <hash>,
  "id": {
    "string": "0",
    "data": "string"
  },
  ....
}

Hit the URL with 1 as the parameter

curl <function-url>/api/periods/1

Output is:

{
  "invocationId": <hash>,
  "id":  1
...
}

Expected behavior

Format should be the same no matter what value is passed in.

Actual behavior

Format is integer literal for non-zero values (id: 1) and an object ({ ... }) for zero values.

Known workarounds

You can detect and respond in code, but that is ugly.

Related information

Provide any related information

  • Programming language used: Typescript
  • Links to source: Above
  • Bindings used: Above
Source
import { AzureFunction, Context, HttpRequest } from "@azure/functions"

const httpTrigger: AzureFunction = async function (context: Context, req: HttpRequest): Promise<void> {
    context.res = {
        body:context.bindingData
    }
}

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions