URL RESTifying

Давайте возьмем мудрый совет @ StephenRauch и переместим:

new_list = start, summ(start, direction)

за пределы цикла for. И очистим код, как мы делаем:

def summ(a, b):
    return a[0] + b[0], a[1] + b[1]

def position(argument):

    maxx, start, direction = argument

    new_list = [start]

    for _ in range(maxx - len(new_list)):
        new_list.append(summ(new_list[-1], direction))

    return tuple(new_list)

print(position(((5), (2, 0), (1, 1))))

OUTPUT

> python3 test.py
((2, 0), (3, 1), (4, 2), (5, 3), (6, 4))
>

Теперь давайте немного повеселимся с кодом, а не изобретаем векторную арифметику мы импортируем Vec2D из черепахи Python. И верните list, который имеет для меня больше смысла, чем tuple:

from turtle import Vec2D

def position(argument):

    maxx, start, direction = argument

    return [start + n * direction for n in range(maxx)]

print(position(((5), Vec2D(2, 0), Vec2D(1, 1))))

ВЫХОД

> python3 test2.py
[(2.00,0.00), (3.00,1.00), (4.00,2.00), (5.00,3.00), (6.00,4.00)]
> 
7
задан Mihai Limbășan 29 October 2008 в 19:16
поделиться

2 ответа

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

Придерживайтесь "Объектов с Представимым состоянием" для Ваших компонентов контура URL. Категория кажется OK, но что точно Вы питаетесь по XML? Сообщения? Объекты каталога? Части?

Я думаю, что намного лучшая таксономия REST была бы похожа на это (предположение, что содержание Вашего канала XML является "статьей"):

Если Вы не думаете об объектах, Вы представляете при создании структуры REST, Вы не делаете REST. Вы делаете что-то еще.

Смотрите на эту статью о лучших практиках REST. Это старо, но это может помочь.

4
ответ дан 7 December 2019 в 12:26
поделиться

Параметры со значениями? Одна опция является строкой запроса. Используя его не является по сути неуспокоительным. Другая опция состоит в том, чтобы использовать точку с запятой, переговоры Tim Berners-Lee о них, и они могли бы просто отвечать всем требованиям, позволяя URL иметь смысл, не имея в широком масштабе длинных трактов.

1
ответ дан 7 December 2019 в 12:26
поделиться
Другие вопросы по тегам:

Похожие вопросы: