I'm trying to create an api route with input parameters but I'm not getting the expected result.

Here is my webapi.xml:

    <?xml version="1.0"?>
    <routes xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../../../../../app/code/Magento/Webapi/etc/webapi.xsd">
        <route url="/V1/foo" method="POST" secure="true">
            <service class="..\FooInterface"
                     method="getFooById"/>
            <resources>
                <resource ref="anonymous"/>
            </resources>
            <data>
                <parameter name="id" force="true">%id%</parameter>
            </data>
        </route>
    </routes>

Here my interface:

    interface FooInterface
    {
        /**
         * Test function
         *
         * @api
         * @param string $id
         * @return string
         */
        public function getFooById($id);
    }

And here the class:

    class Foo implements FooInterface
    {
        /**
         * {@inheritdoc}
         */
        public function getFooById($id){
            return $id;
        }
    }

I'm omitting the di.xml with the preference.
Now if I call that route whatever I do all I get back is `%id%`. Even if I don't put any parameter I get that instead of an error or something.

What am I doing wrong here?

Here is the call in postman:
[![enter image description here][1]][1]
[![enter image description here][2]][2]

I tried:

 - sending a get request
 - sending a get request with parameter `/order?id=foo`
 - sending a post request
 - sending a post request with form-data
 - sending a post request with raw data (as seen in screenshot)

All have the same result -> `%id%`

  [1]: https://i.sstatic.net/dkQKu.png
  [2]: https://i.sstatic.net/0I3c6.png