uritemplate icon indicating copy to clipboard operation
uritemplate copied to clipboard

What about matching?

Open pombredanne opened this issue 11 years ago • 7 comments

i.e. given a URI and a template? does the URI match the template? This would be a useful feature

pombredanne avatar Mar 08 '14 21:03 pombredanne

That sounds like it would be fun to work on. I'm not sure I'll have time to work on it immediately but I'll definitely think about it.

Do you have any ideas for how to work towards it?

sigmavirus24 avatar Mar 08 '14 21:03 sigmavirus24

I think this would benefit from an idea I had a few months ago - write something akin to urlparse to be able to parse templates the same way you'd like to parse a URL. That would likely simplify this problem.

sigmavirus24 avatar Mar 09 '14 01:03 sigmavirus24

I stumbled upon this https://github.com/google/uri.dart by @justinfagnani . This is contains a URI template implementation for Dart but also tow very interesting bits: matching: https://github.com/google/uri.dart#urimatch and parsing: https://github.com/google/uri.dart#uriparser

pombredanne avatar Mar 09 '14 17:03 pombredanne

Yes, the UriParser can parse and extract parameters from a subset of UriTemplates right now. I'd like to expand the number of operators that are handled, and come up with some reasonable rules for what the modifiers do. It'd be great if there were compatible implementations in other languages. Let me know if there are behaviors that aren't intuitive.

justinfagnani avatar Mar 09 '14 18:03 justinfagnani

I made a partial stab at it on the other uritemplate package: uri-templates/uritemplate-py#12

I just found this implementation. If this is a more actively developed project, I could probably port it to this package.

deontologician avatar Apr 03 '14 01:04 deontologician

They're both maintained but I'm probably more reactive because I'm not leading the creation of HTTP/2.0

I'd be happy to include it though.

sigmavirus24 avatar Apr 03 '14 01:04 sigmavirus24

This has stuck in my head for a while. I think we want to take an approach similar to https://github.com/erinxocon/tpfd using https://github.com/r1chardj0n3s/parse. We'd have to parse out the variables using our current variable parsing logic and then strip out the annotations about level, etc. for the parse library to work.

sigmavirus24 avatar Sep 21 '16 15:09 sigmavirus24