Rosette API is fundamentally a RESTful API that allows a developer’s code to communicate with the Rosette API service using JSON data over HTTP. Anyone with the right tool should be able to code directly against it. However we strongly recommend that developers take advantage of our client bindings, which we've developed to offer idiomatic access to the Rosette API's functionality within a certain coding language or platform. We have bindings in Python, Java, C#, Node.js, PHP, Ruby, and R and are open to developing more by request. The goal of the bindings is to make a Python, Java, PHP, etc. developer's access to the Rosette API as easy as possible, and they offer a number of significant benefits:
- A language-based binding allows developers to code in the language and development environment that they are most familiar with
- Bindings provide encapsulation so that developers are shielded when we make data structure and/or communication protocol level changes
- Developers don’t have to deal with JSON serialization/deserialization; all data is transformed into language specific objects, maps, dictionaries, etc.
- Developers don’t have to handle the HTTP protocol, its session/state management, data compression, and issues specific to Rosette API (such as connection re-use, concurrency enforcement, and error retry)
- Version updates and dependency management are handled in an industry standard way, e.g. Maven Central for Java, PyPI for Python, etc.
- Bindings allow the open source community to share feedback and contribute back
- Bindings have been vetted and passed through several stages of testing
Running into issues? Submit a ticket and we'll get you back on track.