Статьи

Кто получает отдых?

Когда я взглянул на Катализатора и Генделя в частности, я снова подумал об этом REST .

Мне кажется, что очень немногие люди получают точку зрения (и я не утверждаю, что я понимаю). Было много умных дебатов, некоторые даже приземленные , но что действительно означает REST? Какие практические последствия могут использовать веб-разработчики? Как мы устраняем серые области? Это отдых?

То, что я почти уверен в том, что Рой описывал , в глубине души, очень простой набор идей, основанный на простом протоколе, который обеспечивает все, что вам нужно. Но в бесконечных дебатах против SOAP точка зрения, кажется, была потеряна.

Одна конкретная цитата из интерпретации Википедии

В REST […] упор делается на разнообразие ресурсов или существительных

Скажем так, как это смелое утверждение, которое мы можем использовать на самом деле:

Никогда не помещайте глаголы в URL

В этой степени внесены изменения, так что этот URL — http://www.example.org/users/ search ? Surname = Майклз становится следующим: http://www.example.org/users?surname=Michaels

Будет запущено с двумя исключениями (но я думаю, что единственными исключениями) — доменные имена или где глагол на самом деле является частью имени (например, заголовок в «дружественной для поисковых систем» URL), как это

Подумайте, последствия, вытекающие из этого правила, могут значительно упростить использование фреймворков, если вокруг него будут разработаны API-интерфейсы — промежуточное звено между этим и фреймворками, такими как Catalyst и Rails, которые, я думаю, перевернули проблему в эту форму .

В терминах Catalyst это сводится к контроллерам, как;


package MyApp::Controller::Cart::Item;

use strict;
use base 'Catalyst::Base';

sub new : Regex('^(d+)$') {
     my $class = shift;
     my $self = Catalyst::Base->new();
     bless($self, $class);
     return $self;
}

sub GET {
    my ( $self, $c ) = @_;
    # Do HTTP GET stuff here
}

sub POST {
    my ( $self, $c ) = @_;
    # Do HTTP POST stuff here
}

sub DELETE {
    my ( $self, $c ) = @_;
    # perhaps...
}

Оставлю это там. Не стесняйтесь POST пламя или что-то