Plugin API should allow to handle the callback of a url-callback-scheme

When communicating with other apps via url callback schemes, it would be helpful to be able to process the callback in the plugin itself.

Scenario:
I create a project in Things via the url scheme of Things.
In the callback from Things I can get the ID/url scheme of the project.
If I could assign a callback address, I could insert the url scheme of the Things project in my Obsidian note.

Off the top of my head, this could be realized by giving every plugin its own url scheme à la

obsidian://plugin?id=id-of-my-plugin&data=some%20string
6 Likes

Rather than putting the id in the query, why not obsidian://vault/VAULTNAME/plugin/PLUGIN/..., with the plugin being given the rest of the URL. That would let them use the remaining path portion as well.

TBH, I’m not too fond of the new /verb?params style URLs, as they aren’t particularly idiomatic as modern URLs go. In particular, burying the vault in the query string means you can’t quickly inspect a URL to know what vault is being referenced. You have to read through every bit of the query looking for it, since it could be anywhere in the query.

The “U” in URL stands for “uniform”, after all. :wink: Also, they’re supposed to be Resource Locators, meaning the primary function is to locate a resource, upon which a query may then be performed. The new verb-based URLs don’t seem to be either uniform nor resource-locating; they’re verbs in URL syntax, more of an RPC call than anything else.