greptilian logo

IRC log for #rest, 2015-03-22

https://trygvis.io/rest-wiki/

| Channels | #rest index | Today | | Search | Google Search | Plain-Text | plain, newest first | summary

All times shown according to UTC.

Time S Nick Message
01:04 mezod joined #rest
01:23 TeddyMurray joined #rest
01:52 shrink0r_ joined #rest
02:21 lemur joined #rest
04:37 lemur joined #rest
06:23 lemur joined #rest
09:18 Left_Turn joined #rest
10:53 lemur joined #rest
14:43 mezod joined #rest
15:44 _ollie joined #rest
15:55 fumanchu joined #rest
16:10 fumanchu_ joined #rest
16:16 azer joined #rest
16:19 Jefffrey joined #rest
16:20 Jefffrey_ joined #rest
16:54 _ollie1 joined #rest
17:35 mgomezch joined #rest
17:36 TeddyMurray joined #rest
17:53 rosstuck joined #rest
17:54 azer joined #rest
18:16 cigarshark joined #rest
18:27 _ollie joined #rest
18:47 vanHoesel joined #rest
18:52 azer joined #rest
19:19 bobjames joined #rest
19:21 bobjames If I have a resource URL like   http://example.com/foo/bar/   and I return relations like "baz/"  then they are to be interpreted relatively right, i.e.  example.com/foo/bar/baz/
19:50 lemur joined #rest
19:59 vanHoesel joined #rest
20:01 vanHoesel bobjames: not sure if you got an answer in the mean time
20:01 vanHoesel but you are basicly right
20:02 vanHoesel relations usually follow the same pattern as what you remember of the web
20:02 bobjames vanHoesel: thanks :)
20:02 bobjames vanHoesel: I know in REST there are attempts at prividing recipes so explicit URLs don't need to be sent back.
20:03 bobjames I'm thinking... if all my relations are literally like this:     "foo" :  "foo/"  then... it does kind of make you question is I can express this with less redundancy
20:04 bobjames I realize the URL is not supposed to be constructable out of thin air.
20:04 bobjames But All my URLs are... the relation + "/"
20:04 vanHoesel are you specifacally concerned about the trailing '/' ?
20:12 vanHoesel i would rather not have trailing slashes
20:14 vanHoesel the '/' is interperted as some kind of hierchy where there '/' seperates the names of the relations... there is nothing to seperate at the end
20:15 shrink0r joined #rest
20:18 bobjames vanHoesel: I kinda agree, but there are practical and historical reasons
20:19 bobjames vanHoesel: most routers are set up to have a trailing slash because for some reason people find such URLs look more "complete".
20:19 bobjames vanHoesel: also technically every resource can have subresources, so it's technically a "folder" of resources, and that is expressed with "/"
20:20 bobjames vanHoesel: third reason is that without trailing slash you can't navigate using relative URLs as easily
20:20 bobjames Oops.
20:20 vanHoesel joined #rest
20:20 bobjames Oh I thought I bored you :P
20:20 vanHoesel nope, accidently kicked myself
20:20 bobjames vanHoesel: third reason is that without trailing slash you can't navigate using relative URLs as easily
20:21 bobjames vanHoesel: consider how'd I specify "a sub-resource to that resource" with "foo" if my current path has no trailing "/"
20:21 bobjames I can't express it
20:21 vanHoesel well, a relation without a leading slash can simply joined with a '/', can't it ?
20:22 vanHoesel join '/' , $resource, $relation
20:22 bobjames vanHoesel: not sure what you mean; to be more specific:   /foo/  + bar/   === /foo/bar/   and  /foo + bar  === /bar
20:22 bobjames vanHoesel: it makes relative URLs need a lot more context
20:23 bobjames vanHoesel: basically makes relative URLs redundant
20:23 bobjames instead of /foo/ + bar/   I need to give:   /foo  + foo/bar
20:23 vanHoesel what about: /foo + '/'  + 'bar' === 'foo/bar' ???
20:23 bobjames vanHoesel: well the relative URL rules are already set.
20:24 vanHoesel sorry that shpuld be === '/foo/bar'
20:24 bobjames vanHoesel: when I return a relative URL it's interpreted as it is relative to the current URL
20:24 vanHoesel correct
20:24 bobjames Well I can't express that "/" in the middle
20:24 bobjames Or can I
20:25 bobjames What would be the relative URL to return so  /foo becomes /foo/bar
20:25 bobjames Only one I can think is "foo/bar"
20:25 vanHoesel it would be 'bar'
20:25 bobjames vanHoesel:  that would resolve to /bar not /foo/bar
20:26 vanHoesel if it returned a relation called '/bar' yep
20:26 bobjames vanHoesel: no I mean   /foo + bar = /bar :P
20:26 bobjames If you want try it in a browser ;)
20:27 bobjames Maybe I shouldn't use the plus sign but I mean href="bar" at document /foo resolves to document /bar
20:27 bobjames theo nly way to keep the context is with the trailing slash
20:28 bobjames Or by passing it redundantly in the relative link
20:28 vanHoesel let me try
20:28 bobjames I could be wrong, but I don't know a way around it :D
20:30 vanHoesel it doesn't work in my browser anyways
20:30 bobjames Oh well it works in any browser..
20:31 vanHoesel oh... holdon... as a href
20:31 bobjames Sure
20:31 bobjames <a href="">
20:32 bobjames vanHoesel: it's a bit of a murky territory. We're told resources don't sit in a hierarchy, it's an opaque URL string... yet, relative URLs exist :)
20:32 bobjames vanHoesel: and I for one don't mind using them :/
20:32 vanHoesel i love relative relationships
20:33 bobjames vanHoesel:  :)
20:39 lemur joined #rest
20:44 vanHoesel just checked with my browser.... <A HREF="related/here.html">here?</A> works fine
20:49 vanHoesel and routers that think that a 'thing' on the web is either identified by a URL that ends in a .suffix OR in a trailing '/' to indicate "resource/index.html" should be electrocuted
20:59 bobjames vanHoesel: I feel you didn't understand my point.
21:00 bobjames vanHoesel: can you make an <a> link that points to   /foo/bar  from /foo  page, without mentioning foo
21:01 vanHoesel would i need to asume you have the '/foo' resource loaded already ?
21:02 vanHoesel if so, a <A HREF="bar"> does the thing altready for you
21:03 vanHoesel question is, however, does the server know how to handle '/foo/bar' ?
21:06 vanHoesel more clearly... if you have some resource (or html page) with URL: '/artists/1234' and a relationship called 'albums'.... then it would point to '/artists/1234/albums'
21:07 vanHoesel the '/' between the '4' and the 'a' will be put there for you
21:08 vanHoesel that's the browser (client / user-agent) it's responsabillity
21:10 bobjames vanHoesel:  if I am at page "/foo
21:11 vanHoesel that should join the 'BASE' and the relation or relative URL with a '/'
21:11 bobjames vanHoesel:  if I am at page "/foo" and I click link "bar" I'll go to "/bar"
21:11 vanHoesel silly browser
21:11 bobjames vanHoesel: if I am at page "/artists/1234" and I click "albums" I'll go to "/artists/albums"
21:12 bobjames vanHoesel: well that's because directories and files are assumed to be fundamentally different
21:12 * vanHoesel grumbles
21:12 bobjames vanHoesel: and I'm kinda like "well everything is potentially a host of sub-things related to it - so everything is a directory" and boom.
21:12 bobjames Of course the only exception is actual file URLs. But file URLs never have "subfiles" so that's fine
21:17 trygvis the rules for creating absolute URLs is specified by the media type
21:17 trygvis like HTML's base attribute
21:19 bobjames trygvis: interesting point. But in the absense of base, what happens if it's not HTML and it's relative. Undefined behavior?
21:20 bobjames trygvis: that's actually a very interesting point...
21:21 trygvis relative URLs are kinda useless for anything machine-generated
21:21 bobjames trygvis:  I could define a media type where my relations are expressed only by their name... so instead of {"profile": "http://e.com/foo/123/profile"} I can just have  ["profile"] ... and yet that would be considered not aligned with HATEOAS
21:22 bobjames trygvis: machines deal fine with relative URLs..
21:22 trygvis only if told how to transform them into absolute URLs
21:23 trygvis but my point was that it doesn't add value
21:23 bobjames trygvis: well if my media type can specify how to convert them into full URLs does that qualify as out of band info or not?
21:24 bobjames trygvis: it kind of becomes very murky very quickly
21:24 trygvis the user agents are expected to implement the media type they support and since the construction of URLs are specified by the media type you're good
21:26 bobjames trygvis: that almost feels like a loophole to call anything HATEOAS if I use a custom media type with lots of implicit URL building rules.
21:50 pdurbin ramsey: you know bigbluehat too? I just met him the other day and didn't realize he was in this channel. :)
21:52 lemur joined #rest
22:09 pdurbin nice guy, nice hat
22:24 mezod joined #rest

| Channels | #rest index | Today | | Search | Google Search | Plain-Text | plain, newest first | summary

https://trygvis.io/rest-wiki/