On Sun, 23 Jun 2019, Sven Barth via fpc-pascal wrote:
- localhost:8080/metadata works
- localhost:8080/users returns "INVALID RESOURCE"
Because it has rdoConnectionInURL set, and so you must do
localhost:8080/expenses/users
Ahhhhhh! Hadn't seen that this option is active... Okay, then it
indeed works as expected, both with and without rdoConnectionInURL.
By the way: I noticed a slight annoyance, but I don't know whether
one can really do something about that: When I set rdoConnectionInURL
to False inside the object inspector it turns on again, because
rdoConnectionResource is set. Took me a moment to look at the source
code to see that I need to disable rdoConnectionResource first. Don't
know what a better solution would be...
Funny you mention this, I was fooled myself yesterday, I also had to
look in
the sources :(
One way would be to disable rdoConnectionResource if you disable
rdoConnectionInURL. I will add this.
But wouldn't that lead to an analogous problem with
rdoConnectionResource if rdoConnectionInURL is not set?
I fixed this: if you disable rdoConnectionInURL, rdoConnectionResource is
disabled. If not, if rdoConnectionResource is included, rdoConnectionInURL
will be set too.
I also fixed the use in a module. The module will set 'active' to false on
the dispatcher. Before handling the request, it takes the request and uses
pathinfo to set the routing parameters
With the sample module, I tested all possible cases:
No rdoConnectionInURL:
wget --auth-no-challenge --http-user=me --http-password=secret
http://localhost:8080/REST/metadata --content-on-error -O - -d
--auth-no-challenge
wget --auth-no-challenge --http-user=me --http-password=secret
http://localhost:8080/REST/users --content-on-error -O - -d --auth-no-challenge
rdoConnectionInURL set:
Basepath empty:
wget --auth-no-challenge --http-user=me --http-password=secret
http://localhost:8080/REST/metadata --content-on-error -O - -d
--auth-no-challenge
wget --auth-no-challenge --http-user=me --http-password=secret
http://localhost:8080/REST/expenses/metadata --content-on-error -O - -d
--auth-no-challenge
wget --auth-no-challenge --http-user=me --http-password=secret
http://localhost:8080/REST/expenses/users --content-on-error -O - -d
--auth-no-challenge
BasePath set to Lola
wget --auth-no-challenge --http-user=me --http-password=secret
http://localhost:8080/REST/Lola/metadata --content-on-error -O - -d
--auth-no-challenge
wget --auth-no-challenge --http-user=me --http-password=secret
http://localhost:8080/REST/Lola/expenses/metadata --content-on-error -O - -d
--auth-no-challenge
wget --auth-no-challenge --http-user=me --http-password=secret
http://localhost:8080/REST/Lola/expenses/users --content-on-error -O - -d
--auth-no-challenge
BasePath set to Lola/Pola
wget --auth-no-challenge --http-user=me --http-password=secret
http://localhost:8080/REST/Lola/Pola/metadata --content-on-error -O - -d
--auth-no-challenge
wget --auth-no-challenge --http-user=me --http-password=secret
http://localhost:8080/REST/Lola/Pola/expenses/metadata --content-on-error -O -
-d --auth-no-challenge
wget --auth-no-challenge --http-user=me --http-password=secret
http://localhost:8080/REST/Lola/Pola/expenses/users --content-on-error -O - -d
--auth-no-challenge
I think I covered all cases. If I forgot one, do let me know...
I will update the Wiki.
Michael.
_______________________________________________
fpc-pascal maillist - fpc-pascal@lists.freepascal.org
https://lists.freepascal.org/cgi-bin/mailman/listinfo/fpc-pascal