HTTP PUT файл и данные - PullRequest
       37

HTTP PUT файл и данные

0 голосов
/ 25 сентября 2011

В моем RESTful API говорят, что у меня есть изображение, которое пользователь может обновить с помощью запроса PUT.

И скажем, у каждого из этих изображений есть свое имя, которое пользователь может назначить, чтобы они могли легко просматривать его.

Что я хотел бы сделать, это отправить запрос на размещение, который содержит обновленный файл И новое имя для изображения, но я не уверен, как заставить PHP отделить обновленный файл от нового имени, когдачтение из php: // input

Кто-нибудь знает, как это сделать?

Ответы [ 6 ]

1 голос
/ 27 сентября 2011

Взгляните на AtomPub (http://tools.ietf.org/html/rfc5023), особенно ссылки для редактирования медиа. Это не совсем дает вам то, что вы хотите, но, возможно, вы можете адаптировать его.

С семантической точки зрения должно быть нормально помещать составную документацию в запись атома, где первая часть составной части представляет собой XML-запись атома для обновления заголовка. Элемент содержимого этой записи может указывать на вторую составную часть (данные изображения), используя cid: URI (http://tools.ietf.org/html/rfc2392)

Заголовок Slug (также в RFC 5023) также может быть началом исследования.

Также могут быть некоторые более старые заголовки вокруг Content-Disposition: и Title: вы можете искать.

Другой вариант - просто создать новый ресурс с соответствующей семантикой, а POST или PATCH - составной или структурированный документ к нему.

Jan

1 голос
/ 25 сентября 2011

Поместите скалярные параметры (т.е. старое имя, новое имя) в строку запроса.

0 голосов
/ 07 декабря 2016

Используйте для этого заголовок SLUG:

Другими словами, заголовок Slug предоставляет клиенту возможность предложить URI для вновь созданного ресурса.

URI могутиспользуйте только ограниченный набор символов, если Slug использует символы вне допустимого набора символов URI, то сервер должен экранировать эти символы.

Два или более клиентов могут попытаться создать ресурс с одним и тем же Slug наВ то же время сервер должен предоставить каждому ресурсу уникальный URI, поэтому сервер может выбрать для украшения слага дополнительные символы, чтобы гарантировать уникальное имя каждого ресурса.

Ссылки

0 голосов
/ 27 сентября 2011

После рассмотрения я думаю, что вам нужен POST-запрос с multipart/form-data. Это позволяет использовать как файлы, так и некоторые скалярные элементы данных без использования Base64 или URLEncode для данных файла.

0 голосов
/ 26 сентября 2011

Правильный формат, если вы хотите, чтобы в одном и том же теле запроса было несколько типов контента, - это использовать multipart mime, чтобы обернуть их все в одно и то же тело запроса. Однако поддержка чего-то столь же сложного, как multipart mime, может быть немного трудно оправдать.

0 голосов
/ 25 сентября 2011

Почему вы не используете URL для имени файла?

PUT /images/new_image.jpg
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...