Здесь это находится в C#
int[,] array = new int[4,4] {
{ 1,2,3,4 },
{ 5,6,7,8 },
{ 9,0,1,2 },
{ 3,4,5,6 }
};
int[,] rotated = RotateMatrix(array, 4);
static int[,] RotateMatrix(int[,] matrix, int n) {
int[,] ret = new int[n, n];
for (int i = 0; i < n; ++i) {
for (int j = 0; j < n; ++j) {
ret[i, j] = matrix[n - j - 1, i];
}
}
return ret;
}
Поскольку POST - это операция «добавления», может быть более английским для POST to / products
, поскольку вы добавляете новый продукт к существующему списку продуктов.
Пока вы стандартизировали что-то в своем API, я думаю, что этого достаточно.
Поскольку REST API должны управляться гипертекстом, URI в любом случае относительно несущественен. Клиенты должны извлекать URI из возвращенных документов и использовать их в последующих запросах; обычно приложениям и людям не нужно угадывать или визуально интерпретировать URI, поскольку приложение будет явно указывать клиентам, какие ресурсы и URI доступны.
Обычно вы используете POST для создания ресурса, когда вы заранее не знаете идентификатор ресурса, и PUT, когда знаете. Таким образом, вы должны отправить POST в / products или PUT в /products/{new-id}.
. В обоих случаях вы вернете 201 Created, а с POST дополнительно вернете заголовок Location, содержащий URL-адрес нового созданный ресурс (при условии, что он был успешно создан).
Вы ПУБЛИКАЕТЕ или ПОЛУЧАЕТЕ одно: единственный ПРОДУКТ.
Иногда вы ПОЛУЧАЕТЕ без определенного продукта (или с критериями запроса). Но вы все равно говорите это в единственном числе.
Вы редко работаете с множественными формами имен. Если у вас есть коллекция (Каталог товаров), это один Каталог.
Team Foundation Sidekicks
Другой вариант - использовать приложение Team Foundation Sidekicks, которое можно получить здесь: http://www.attrice.info/cm/tfs/
У него есть дополнительный элемент статуса, который позволяет вам запрашивать проверенные рабочие элементы. После выбора рабочего элемента можно использовать кнопки «Отменить отложенное изменение» и «Отменить блокировку».
Права
Имейте в виду, что вам потребуются соответствующие права. Разрешения называются «Отменить изменения других пользователей» и «Разблокировать изменения других пользователей». Эти разрешения можно просмотреть: Язык не указан, но в Java вы можете сделать что-то вроде этого.
WebServiceContext ws_ctx;
MessageContext ctx = ws_ctx.getMessageContext();
String action = (String)ctx.get(MessageContext.HTTP_REQUEST_METHOD);
if(action.equals("GET")
// do something
else if(action.equals("POST")
// do something
Таким образом вы можете проверить тип запроса, который был отправлен веб-службе, и выполнить соответствующее действие на основе метода запроса.
В дизайне RESTful существует несколько шаблонов создания новых ресурсов. Выбранный вами шаблон во многом зависит от того, кто отвечает за выбор URL-адреса для вновь созданного ресурса.
Если клиент отвечает за выбор URL-адреса, то клиент должен ПОСТАВИТЬ на URL-адрес ресурса. Напротив, если сервер отвечает за URL-адрес ресурса, то клиент должен выполнить POST на «заводской» ресурс. Обычно ресурс фабрики является родительским ресурсом создаваемого ресурса и обычно представляет собой коллекцию, имеющую множественное число.
Итак, в вашем случае я бы рекомендовал использовать / products
Я бы публиковал только в единственном числе / product
. Слишком легко перепутать два URL-адреса и запутаться или сделать ошибку.