⬆️ For table of contents, click the above icon
xs.fi ("accessify"): semantic, persistent URL namespace and a metadata specification.
Let's make URLs and metadata beautiful again.
We offer URLs like https://xs.fi/movie/by-imdb/tt12593682/imdb
We also plan to be a metadata specification to provide guide how to record metadata for your precious
If you recognize yourself as a data hoarder, you'll feel right at home.
Path after https://xs.fi |
Example | Components | Description |
---|---|---|---|
/<namespace> |
https://xs.fi/movie |
namespace=movie |
We are going to be referencing a movie |
/<namespace>/<query> |
https://xs.fi/movie/by-imdb |
namespace=movie , query=by-imdb |
Movie by IMDb ID |
/<namespace>/<query>/<identifier> |
https://xs.fi/movie/by-imdb/tt12593682 |
namespace=movie , query=by-imdb , id=tt12593682 |
Movie by IMDb ID tt12593682 |
/<namespace>/<query>/<identifier>/<resource> |
https://xs.fi/movie/by-imdb/tt12593682/imdb |
namespace=movie , query=by-imdb , id=tt12593682 , resource=imdb |
IMDb page for movie by IMDb ID tt12593682 |
In pseudo you can think of our backend data model like this:
{
"namespaces": {
"movie": {
"queries": [
{
"query": "by-imdb"
}
],
"resources": [
{
"resource": "imdb",
"description": "IMDb page",
"redirect_to": "https://www.imdb.com/title/<IMDb ID>"
}
]
},
"tv-series": {
"queries": [
{
"query": "by-imdb"
}
],
"resources": [
{
"resource": "imdb",
"description": "IMDb page",
"redirect_to": "https://www.imdb.com/title/<IMDb ID>"
}
]
}
}
}
namespace
is the first part after xs.fi:https://xs.fi/<namespace>
. Example namespace ismovie
.- Namespace is usually followed by
query
so the format usually ishttps://xs.fi/<namespace>/<query>
After the namespace usually comesby-<identifier type>
query. Example ishttps://xs.fi/<namespace>/by-imdb
which means we are referencing a node based on its IMDB ID. Forby-imdb
namespaces which make sense aremovie
ortv-series
so namespace+query combos read likemovie/by-imdb
ortv-series/by-imdb
- Identifier
- Resource
Practice has shown that not all people think URLs are beautiful or important: they'll change their web application UI and break old URLs.
So if IMDb ever changes the title URL to something else than https://www.imdb.com/title/<ID>
then
xs.fi can change that in the code to link to the new URL
Currently the URLs are meant for human consumption, i.e. it is expected the URLs to be opened in a browser.
Warning
Not implemented. This might be added later.
That will be handled by Content negotiation,
concretely something like Accept: application/json
to distinguish opt-in to programmatic access instead of human consumption.
- Support "xs.fi:ification" of URLs: give
https://www.imdb.com/title/tt12593682
as input and it should spit you backhttps://xs.fi/movie/by-imdb/tt12593682/imdb
and also related resources like TMDB.
xs.fi will always:
- Stay
- our largest value proposition is to not break your links and not annoy you
- Be free
- Not show advertisements
- or if we ever need to resort to ads then it will be based on Acceptable Ads, preferably the Text ads variant.