Не зацикливайтесь на том, что называется id. Вы можете использовать эту конечную точку и вместо передачи значения id передать значение тега api / Maquinas / tagvalue.
Позже вы должны использовать это значение в вызове, который вы делаете, чтобы получить искомую сущность.
_context.Maquinas.FirstOrDefaultAsync(maquina => maquina.Tag == id);
Я предположил, что свойство, по которому вы хотите фильтровать, называется Tag
, а его тип - строка. Вполне вероятно, что, по крайней мере, название объекта не будет таким. Таким образом, вы должны соответствующим образом изменить приведенный выше код.
Это решит вашу проблему, но вы должны , а не , считать это лучшей практикой. Семантика вашего API будет нарушена. Причина, по которой я поделился выше, заключается в том, чтобы показать вам, что имя параметра id не имеет отношения к тому, что вы передаете. Нет никакой проверки, которая остановила бы вас за то, что вы пропустили «что-нибудь». Причина, по которой я написал, что семантика вашего API будет нарушена, заключается в том, что, поскольку это будет API-интерфейс REST, кто-то ожидает конечную точку, подобную следующей:
api/Maquinas/1
для получения объекта с идентификатором1.