Моя команда должна создать API для загрузки документов, например. PDF-файлы. Одна из моих целей - сделать это максимально безболезненным для вызывающих. Я считаю, что вызов POST с двоичным содержимым, предоставляемым как поток, является самым простым. Один из членов группы отметил, что необходимо предоставить метаданные вместе с этим документом. Его предположение, что для этого потребуется запрос с несколькими частями. На мой взгляд, это добавляет значительную сложность для пользователей сервиса.Использование параметров URL-запроса в POST
Я предложил идею установки метаданных в строке запроса URL. Это позволяет использовать метаданные и простое решение потока для документа. Мы оба уверены, что это должно работать с технической точки зрения, но он чувствовал, что это нестандартное или потенциально не RESTful.
Это кажется довольно простым решением для меня, но я действительно не могу найти четкого ответа на вопрос, является ли это проблематичным. Я нашел несколько дискуссий, которые, кажется, об этом, но ответы, похоже, сводятся к «смешиванию GET и POST», которые я не соблюдаю вообще. Если я чего-то не упускаю, это не имеет никакого отношения к GET, просто POST и как структурируется URL-адрес для этого POST. Похоже, есть идея, что параметры запроса поддерживаются только GET, но я не думаю, что это так.
Может ли кто-нибудь предоставить авторитетную ссылку на это?
Я очень ценю, что вы нашли время, чтобы обеспечить такой хорошо написанный и продуманный ответ. Я думаю, что я слежу за вами до этого момента «вы действительно говорите, что каждый PDF-файл загружается с другим ресурсом пользователя». Я не думаю, что я понимаю, кто вы используете термин «ресурс загрузчика» в этом контексте. –
Чтобы дополнительно объяснить сценарий, крайне важно, чтобы URI в этом случае был создан API, поэтому PUT действительно не может быть и речи. Метаданные здесь в основном предназначены для пометки документов, чтобы их можно было найти в результатах поиска. Они не влияют на URI или содержимое ресурса. –
URI являются атомарными. Квесты не являются «параметрами», они являются частью URI. Метод POST передает полезную нагрузку целевому ресурсу, поэтому каждый PDF-файл обрабатывается другим URI, поэтому у вас есть либо разные ресурсы, делающие одно и то же, либо множество разных URI, ссылающихся на один и тот же ресурс. –