service-state-string
v0.0.1
Published
One succint string to expess an intent across applications
Downloads
4
Maintainers
Readme
service-intent-string
One succint string to expess an intent across applications.
An intent is an abstract description of an operation to be performed. An Intent provides a facility for performing late runtime binding between the code in different applications. Its most significant use is in the launching of activities, where it can be thought of as the glue between activities. It is basically a passive data structure holding an abstract description of an action to be performed. developers.android
This is an intent format for multi-app services that can be passed to an application in e.g an URL query param or fragment and then be parsed into a specific state within that application.
Features
- URI-component safe, i.e
window.encodeURIComponent(ServiceIntentString) === ServiceIntentString
- can describe a multitude of potential intents
- human and machine parsable
- framework/routing agnostic
- succint
- extendable
Idea
Construct simple natural-language-inspired sentences to describe an intent. By constructing a simple Subject-verb-object "sentence" we should be able to express most possible intents. Only here we substitute subject with "actor" and verb with "action" to narrow things down a bit more to an application-context.
ACTOR + ACTION + OBJECT
If no OBJECT -> assume actor want's to act on itself.
.
delimiter is used between subject/verb/object.
Actor
An actor within a service. Alphanumeric strings to the right of _
delimiter are more-specific actor identifiers.
user
user_82323
user_non-paying
administrator
Action
Something an actor can do
view
pay
configure
onboard
Object
Something an actor can act on. Alphanumeric strings to the right of _
delimiter are more-specific object identifiers.
company
invoice_13452
Examples
Known user wants to pay a specific invoice
user_3291.pay.invoice_432432
Unknown user wants to see it's profile
user.view
Administrator wants to configure a specific user
administrator_290392.configure.user_294382
Unknown user wants to view specific company
user.view.company_829839