World: r4wp
[!REBOL3] General discussion about REBOL 3
older newer | first last |
GrahamC 16-Jan-2013 [508x5] | I've updated the time scheme and uploaded it to github here https://github.com/gchiu/Rebol3/blob/master/protocols/prot-time.r |
As you can see, there's no error handling yet .. I thought there was a field in the scheme object to store errors but I've lost it. | |
Pavel used a read/lines to format the date in local date format. I replaced that with write options | |
So, you can read time://time.nist.gov to get the date or write time://time.nist.gov [ GMT } to get the date back in GMT. | |
We kept the http-error from Gab's prot-http.r until we figure out what to do about errors | |
Chris 16-Jan-2013 [513] | Read/Write appears to be awkward -- is there any planned replacement for read/custom? I'd suggest that read/args (or read/params) would make more sense than write in the above example... |
GrahamC 16-Jan-2013 [514] | Well, currently 'read doesn't have a custom refinement. But I guess that can be added and then we can use that. |
Chris 16-Jan-2013 [515] | I know, I'm just hoping there will be... |
GrahamC 16-Jan-2013 [516] | But why would you want to diverge from R2's read/custom in favour of read/args? |
Chris 16-Jan-2013 [517x2] | Could be quite elegant used alongside codecs. |
Args (params, whatever) is more specific. read/custom is a bit woolly. | |
GrahamC 16-Jan-2013 [519x5] | where is 'read defined? |
Just searching the sources now ... | |
https://github.com/rebol/r3/blob/master/src/boot/actions.r | |
So, is it just a case of adding the /args or whatever refinement there? | |
Should get some concensus on this as it will affect all the schemes, and may need a little rewriting of the http scheme which uses write to pass options | |
Chris 16-Jan-2013 [524x2] | I certainly see a read/args as being quite distinct in purpose from write. I use it with my sandbox scheme (http://reb4.me/r/wrt) to filter directory contents. read/custom wrt://system/ [thru %.r] ; shows only rebol scripts in this folder write wrt://system/ [thru %.r] ; means something else entirely |
On the http scheme, it could be the difference between adding a query string to a GET request (read/custom), and adding post data on a POST/PUT request (write). | |
GrahamC 16-Jan-2013 [526x2] | with read you're expecting some content back, with write, you're not |
Should we even use write in the http scheme? | |
Chris 16-Jan-2013 [528x2] | I'm appreciative of a return value from write. For example, on a hypothetical Twitter scheme, write twitter:// "My Tweet" would return the new tweet id. |
Similarly most http write operations return a value of some kind. | |
GrahamC 16-Jan-2013 [530] | so, the http scheme should stick to read for sync ops |
Chris 16-Jan-2013 [531] | I see read/get as synonymous, write/post or put, delete/delete. |
GrahamC 16-Jan-2013 [532] | and HEAD ? |
Chris 16-Jan-2013 [533] | info? |
GrahamC 16-Jan-2013 [534] | the thing is that GET sends information and gets something back. Same as POST. What's the difference? |
Chris 16-Jan-2013 [535x2] | Intent. |
Content. | |
GrahamC 16-Jan-2013 [537] | But are we expecting the casual user to understand this? |
Chris 16-Jan-2013 [538x2] | I believe it's more consistent. |
A casual user of http, for sure : ) | |
GrahamC 16-Jan-2013 [540x2] | So, if you're reading a HTTP form, you can either use GET or POST .... |
So, what is the user supposed to do ... use READ or WRITE ? | |
Chris 16-Jan-2013 [542] | GET/READ, POST/WRITE. |
GrahamC 16-Jan-2013 [543x2] | Sounds like duplication |
the http scheme author has to then support both methods of doing the same thing | |
Chris 16-Jan-2013 [545] | Not at all. Particularly if you consider the HTML form -- GET sends parameters in the URL, POST sends parameters in the body. And consider the usage of each: GET is usually some type of search/filter facility, POST is sending data to be stored. |
GrahamC 16-Jan-2013 [546x2] | Well, I usually use POST to collect a token to allow me to proceed on the site |
People don't like sending passwords in the URL | |
Chris 16-Jan-2013 [548] | For a developer, the intent is far clearer. read/custom http://google.com[q "Gordon Strachan"] write http://my-site.com[title "A Blog Post" content "Today I..."] |
GrahamC 16-Jan-2013 [549x2] | It would be simpler if we just used GET and POST instead of read/write |
Looks like it's time to setup one's own r3 build environment to test these things out | |
AdrianS 16-Jan-2013 [551x3] | Graham, would you prefer have functions for all HTTP methods (get, post, put, delete, head, options, trace, connect) ? |
btw, is boot/host-init.r not meant to be used? Seems to be pretty much identical to mezz/prot-http.r minus the header. Is the first produced from the latter? If so, why is it checked in? | |
The last question is addressed at anyone who'd know... | |
GrahamC 16-Jan-2013 [554x2] | Adrian, the actors are used to provide a series abstraction on ports. But as developers I think it might be clearer to have specific methods. Otherwise you're reading the options block to see exactly what is being done. |
though I guess we can always put wrappers around the read/write | |
BrianH 16-Jan-2013 [556x2] | Chris, WRITE dest block is the replacement for READ/custom. |
Graham, HTTP GET is supposed to be repeatable without side effects, and thus safe to cache. HTTP POST is supposed to generate side effects, and thus not be safe to cache. | |
older newer | first last |