Web API и шаблон рендеринга, должны ли они в одном вызове функции? - PullRequest
4 голосов
/ 14 марта 2012

Я новичок в веб-разработке. Сейчас я реализую простую форму создания / редактирования пользователя с помощью кнопки отправки.

Я хотел бы знать лучшую практику для реализации этого.

Я уже определил этот вид веб-API

URL           Method    Description
/users/       GET   Gives a list of all users
/users/       POST  Creates a new user
/users/<id>   GET   Shows a single user
/users/<id>   PUT   Updates a single user
/users/<id>   DELETE    Deletes a single user

Мой первый подход:

я создаю две новые функции "/ user / add" и "/ usr / edit", который похож на

app.route("/users/edit")
def edit_user(){
    ....
    ....
    call the internal api /user/ with a "put" method
    ....
    render_template("edit.html")

когда я нажимаю кнопку подтверждения, я вызываю вышеуказанный внутренний API / users /, method = PUT, и сделать окончательный шаблон.

Мой второй подход:

во внутреннем API / user /, я пытаюсь прочитать заголовок http, чтобы увидеть, хочу ли я HTML-шаблон или текст JSON и вернуться к пользователю

Скажем, снова, когда я хочу создать форму редактирования, вместо вызова / user / edit, я вызываю / user / с помощью метода PUT

def put(self, id):
    //see the header of that request
    if header == html
       render_template("edit.html", .....)
    if header == json
       update the record 
#

мой вопрос, в основном, я не знаю, необходим ли маршрут "/ user / add" "/ user / edit" для создания формы, или мы можем просто встроить в / user / api другой "post" или "положить" метод.

идея исходит отсюда, из колба , подключаемый вид, который мне интересно, как сделать лучшую реализацию

Или это лучший способ сделать это ???

Большое спасибо.

1 Ответ

0 голосов
/ 14 марта 2012

Я бы выбрал ваш первый подход, потому что ваши URL ясны и логичны.Также вы разделяете ваш веб-интерфейс (веб-сайт с формами) и бэкэнд (API), что очень полезно при тестировании.Обычный веб-браузер отправляет на сайт только запросы GET и POST, поэтому очень сложно отобразить шаблон с помощью запроса PUT для пользователя, поскольку пользователь обычно не может запустить запрос на размещение.

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