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.

1 Answer 1


its a bit too broad question - we know nothing about your project/devices. But it seems you already have an API : its the commands/data you send over your TCP comms already.

So you first need to split your project into modules based on functionality. Then provide an easily-accessible wrapper (over HTTP is always a good idea, using either REST messages, or SOAP if you're masochistic) that translates the user-commands into whatever TCP commands you currently use.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.