Próbuję zaimplementować RESTful API w Perlu. Moim aktualnym pomysłem jest po prostu przeanalizowanie parametru ścieżka_info za pomocą wyrażenia regularnego, a następnie wysłanie żądania do odpowiedniego podprogramu, który następnie wypluje JSON, XML lub nawet XHTML dla żądanego zasobu.Jak mogę wdrożyć RESTful API w Perlu?
Na przykład w celu pobrania informacji o Użytkowniku 1234 relaksującego klient powinien go znaleźć pod adresem:
http://example.com/model.pl/users/1234
Poniżej znajduje się kod szkielet moja pierwsza próba wdrożenia REST API:
model.pl:
#!/usr/bin/perl -w
use strict;
use CGI;
my $q = CGI->new();
print $q->header('text/html');
my $restfuluri = $q->path_info;
if ($restfuluri =~ /^\/(questions)\/([1-9]+$)/) { questions($1, $2); }
elsif ($restfuluri =~ /^\/(users)\/([1-9]+$)/) { users($1, $2); }
sub questions
{
my $object = shift;
my $value = shift;
#This is a stub, spits out JSON or XML when implemented.
print $q->p("GET question : $object -> $value");
}
sub users
{
my $object = shift;
my $value = shift;
#This is a stub, spits out JSON or XML when implemented.
print $q->p("GET user: $object -> $value");
}
Zanim przejdę dalej, chciałbym usłyszeć od doświadczonych hakerów Perla, czy mam podstawowy pomysł w porządku i czy są jakieś poważne niedociągnięcia w tym podejściu pod względem wydajności.
Mogę sobie wyobrazić, że po pewnym czasie blok if/else stanie się naprawdę duży.
Czekamy na Twoje opinie, aby poprawić ten kod.
mogę zasugerować, że jeśli celem jest zbudowanie REST API, które można spędzić trochę więcej czasu na naukę o odpoczynku . Interfejsy RESTful nie używają ładnych adresów URL do dostarczania XML i JSCON. –
Sprawdź inne pytania dotyczące StackOverflow, które wyjaśniają szczegółowo REST. – aehlke
Proszę nie zrozumcie mnie źle, wiem, co to jest REST i jestem świadomy zastosowań i nadużywania REST. Potrzebuję tylko szybkiego i brudnego sposobu dostarczania RESTful API dla starszej aplikacji. Ma dobrze rozwiniętą warstwę danych, wszystko co muszę zrobić, to umożliwić ludziom dostęp do danych sformatowanych jako JSON lub XML przy użyciu ładnych URI. Utrzymuję rzeczy, które muszą być bardziej wiarygodne niż seksowne. Interesowałem się czytaniem książki o usługach RESTful Web Services O'Reilly i większości książek Briana, zanim nawet się o to zapytałem. Myślę, że to jest uzasadnione pytanie. Ponadto większość dyskusji mówi o Ruby. Dzięki. – GeneQ