Canonical Links
Canonical links are links that should always work, even if we rip out the V3 frontend and replace it with something else. This allows client developers to confidently open web views inside their app, or intercept web links and show an app view instead.
All the canonical routes are GET method routes that return HTML pages. Clients should not, for example, open a web view and directly POST to /logout. Use /api/v3/logout instead.
Also, the current frontend is not designed to operate in a boxed context, where the nav bar is removed and the user is ‘boxed’ into either a single page or a set sequence of pages, and can’t just navigate through the entire site. Be sure to explain to the user that they should come back to the app when they’re done, otherwise they may stay inside the web view and think the web view is the app.
Finally, the frontend currently doesn’t provide an easy way to signal that an operation is completed and the app can close the web view.
Open Access Routes
These routes do not require any authorization header to access.
Method | Route | Notes |
---|---|---|
GET | /login | You probably don’t want to open a web view for users to log in, as you won’t get the token (the web pages use session auth) and you can’t use session auth for API calls. Intercepting the login URL and fulfilling the request in-app makes sense, however. |
GET | /createAccount | If you don’t want to build native UI for this, you could open a web view, let the user make their account, and then show them a native login screen. |
GET | /resetPassword | Another seldom-used but important page that could work well as a in-app web view. |
GET | /codeOfConduct | An easy way to put this info in your app if you don’t want a custom view. |
Token Access Routes
These routes may be used with Bearer Authentication, where you provide a Token to auth to the server. See /api/v3/login
. However, these routes will respond with a session cookie, and (most browser clients) use the cookie to perform Session auth for future requests.
Routes not listed on this table MAY NOT work with token auth! If you have a token, you cannot use the token to (for example) auth a POST to a page on the website as if a form had been filled out. You should instead find the API call that does the same function and use that.
Method | Route | Notes |
---|---|---|
GET | /logout | This GETs a page that has a logout button. Probably not a great user experience to open a web view just so the user can click the button and logout. |
GET | /createAltAccount | Lets the current user create an alternate account. |
GET | /tweets | Shows tweets from the tweet stream. Supports a bunch of query options. |
GET | /tweets/:twarrt_id | Shows a thread in the tweet stream. Supports a bunch of query options. |
GET | /forums | Shows forum categories. |
GET | /forums/:category_id | Shows forum threads in a category |
GET | /forum/:forum_id | Shows an individual forum thread. |
GET | /forum/containingpost/:post_id | Shows the forum containing a specific post. |
GET | /seamail | Shows the root seamail page, with a list of all the user’s seamail chats. |
GET | /fez/ | Root LFG page. |
GET | /fez/joined | Shows LFGs you’ve joined. |
GET | /fez/owned | Shows LFGs you’ve created. |
GET | /fez/:fez_id | Shows a specific LFG. |
GET | /fez/faq | Shows a guide to using LFGs responsibly. |
GET | /events | Shows the Events page. Several query options. |
GET | /avatar/full/:user_id | Returns an image (not HTML wrapping an image) |
GET | /avatar/thumb/:user_id | Returns an image |
GET | /user/:user_id | Shows the user profile page for the indicated user. |
GET | /profile/:username | Shows the user profile page for the user with the given username. |
GET | /boardgames | Shows the boardgames list |
GET | /boardgames/:boardgame_id/expansions | Shows expansions for the given board game |
GET | /karaoke/ | Show the root Karaoke page, with recently sung songs and the library search bar. |