Our extensible API is designed for the internet of things, but only where things are cats. We provide a number of API endpoints to empower cats via connections to a variety of feline services.
We provide API libraries for:
- Cat++
- Purrl
- Catskell
- Pascat
- Objective Cat
- KittyScript
Our RESTful architecture ensures all felids can nap without being restricted to a particular platform, scratching post, or bed.
We use a proprietary OAuth implementation that ultimately rests on you being accepted by the particular cat object with which you wish to interact. We recommend not being too eager โ make soft, gentle API calls until the cat trusts you. Completely ignoring the cat is the best way to ensure an valid HTTP response.
Fuck your standards, cats say. We've implemented a whole set of custom HTTP verbs designed to please our grimalkin overlords. For example:
PET /cat/:name?attempt_belly_rub=true&injury_waiver_token=ab53498eff90
FEED /cat/:name?amount=as_much_as_she_wants
LETOUT /cat:name?just_leave_the_door_open=true
For spite, the Felid
data constructor implements Monad
, and details of its exact usage are hidden in a secret place in your basement.
instance Monad Felid where
Felid cat >>= fc = fc $ none of your goddamned business.
Cats are extremely finicky eaters and will refuse to compile unless their type inference system (veterinarians call it the "nose") can determine what exactly it is you're trying to shove into their IO.
All cats are given the id of 1 by default, as none is willing to be anything other than first. It's your job as developers to figure out how to work around this.
cat = Cat.find(1) #=> every cat ever
Cats can be updated or "saved" a total of 8 times. Saving a cat for the 9th time will kill it. You monster.
Cats can exist in the following states:
- content: The cat has no complaints about its physical environment or wellbeing. This state automatically times out after 7 minutes, or upon any API request.
- indifferent: The default state. The cat will not care about being pinged by your server, and will either ignore or murder your packet.
- pissed: All API calls will incur an additional charge, which will be converted to paper currency for shredding.
- irate: The cat will frame you for running the Silk Road and murder-for-hire.
on_purr
on_scratch
on_hate
on_shit_in_a_box