-
Notifications
You must be signed in to change notification settings - Fork 80
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Verb/Noun vs Noun/Verb URL structure #145
Comments
Option 1 doesn't make much sense to me, if we look at the long-term. While I prefer going with But the downside is, as of now, it's usually an organization that posts a job on Hasjob - which is why we don't allow webmail accounts to be used for job posts. If we go for 3, would we change that rule? |
Option 3 has serious disadvantages as it is premised on the user's account being stable. We know from experience that users (a) don't understand usernames and get confused by them, (b) don't know that user accounts are for humans only and organizations should get an organization account, and (c) don't want their personal identity associated with the listing because they are performing a secretarial service. |
Yes, which, when coupled with the fact that we don't allow personal emails, makes a strong case for not going with 3. I suppose 2 it is, then, from my end. The only disadvantage with 2 of course, is what you've already mentioned - draft jobs don't have a confirmed email domain, but I suppose having something like |
Yes. |
@shreyas-satish @karthikb351 what say you? |
Draft edit URLs could also remain at the current |
All our apps use
noun/verb
orcollection/noun/verb
URL structures, where the entity that the user is interacting with appears in the URL before the action being performed on it (with noverb
slug if the action is viewing). Examples:https://metarefresh.talkfunnel.com
-- noun, implicitview
verbhttps://metarefresh.talkfunnel.com/edit
-- noun, explicitedit
verbhttps://metarefresh.talkfunnel.com/2015
-- collection+noun, implicitview
verbhttps://metarefresh.talkfunnel.com/2015/edit
-- collection+noun, explicitedit
verbhttps://hasgeek.tv/metarefresh/
-- noun, implicitview
verbhttps://hasgeek.tv/metarefresh/2014
-- collection+noun, implicitview
verbhttps://hasgeek.tv/metarefresh/2014/edit
-- collection+noun, explicitedit
verbhttps://hasgeek.tv/metarefresh/2014/843-a-front-end
-- collection+collection+noun, implicitview
verbhttps://hasgeek.tv/metarefresh/2014/843-a-front-end/edit
-- collection+collection+noun, explicitedit
verbVerbs are finite, nouns infinite. Having the verb appear before the noun in a URL eliminates any chance of namespace conflict. However, the
view
verb is the use case 90+% of the time and having it appear in URLs is meaningless cruft, so we've taken to using noun/verb order on all sites built after Hasjob. Hasjob continues to have/view/jobid
URLs.In
noun/verb
URLs with implicit view, verbs can conflict with nouns, so verb names have to be reserved against use as nouns (typicallynew
,edit
,delete
). Note that these are not the same as the HTTP verbsPOST
,PUT
andDELETE
. Hyperlinks can only beGET
requests, so there always has to be aGET
version of a verb from which the user can initiate the action.With Hasjob, we don't have a clear sense of how to remove the
view/
prefix from jobpost URLs. Alternatives:https://hasjob.co/<jobid>
-- jobs at the root level. This precludes future use ofhasjob.co/employer
URLshttps://hasjob.co/<domain>/<jobid>
-- makes it apparent from URLs where the job is. Domains always have a period in them while Lastuser usernames never do, so we're saved from potential future namespace conflict. However, draft jobs don't have a confirmed email domain, so their URLs could change. We'll need backup URLs for drafts, like/new/<jobid>
.https://hasjob.co/<profile>/<jobid>
-- where profile is a user or organization. However, usernames are not a well defined feature with Hasjob users and organizations don't exist yet and there is no upgrade path for old jobs.If approach 2 is the way to go, the URL endpoint currently at
/at/<domain>
changes to/<domain>
. Webmail-listed jobs will now become/gmail.com/<jobid>
, exposing these domains for the first time, but this is not a concern as (a) all other domains have long been exposed, and (b) webmail domains are on the wane as they are banned for any non-partnership listings.The text was updated successfully, but these errors were encountered: