Lately I've been searching for information about creating API's. The company I work for wants to sell some of our products as stand alone devices. Currently these products work inside enormous projects with our own software to manage them. However some of these products have acquired lots of attention from companies who would want to use them without our other devices and our very extensive software.
The idea now is to create a configuration tool so the products can be used without all of the extra stuff which is normally needed. We also want to create an API with which 3rd parties can interface to incorporate them in their own systems.
However there are a few hurdles:
- Management does not know how they want this API to work.
- You can communicate with the devices over TCP but we have created a very extensive protocol on top of TCP for sending over the commands and data.
- It is yet unknown what functions the products will and will not be supporting through use of the API.
A few of the options we are currently exploring:
- Rewriting the code of the products so you can communicate with them through JSON, and then thoroughly detail every thing that is possible with JSON (obviously we need to document everything but JSON will be a special case.)
- Creating a DLL to communicate with.
My question, what other options are there?
EDIT: Our products are, amongst others, lockers (which are used with RFID cards), card readers and smart door locks. We cannot use our protocol as API since it is way to complicated.