[OTDev] API 1.1
Vedrin Jeliazkov vedrin.jeliazkov at gmail.comTue Jan 5 13:20:59 CET 2010
- Previous message: [OTDev] API 1.1. extensions - Numeric and Nominal data type implemented
- Next message: [OTDev] API 1.1
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
Dear Alexey, 2010/1/5 Alexey <alexey.zakharov at ibmc.msk.ru>: > Dear Verdin, > > > > How we understand the query: curl -X GET > http://{server}/dataset?compound_uris[]={compound_uri1}&compound_uris[]={compound_uri2}) > according API 1.1 assumes using only dynamic URL, that means necessity to > use DBMS. Well, the need for DBMS depends mainly on the functionality you want to provide and to a lesser extent on the development platform you're going to use for achieving this. So far only IDEA's implementation of the OpenTox API includes a database backend (IN-SILICO's, NTUA's and TUM's implementations also provide "dynamic URLs" (the heart and soul of any RESTful API), without using a database backend). As far as I know, the CakePHP (http://cakephp.org/) development framework, which Nina recommended a few weeks ago, requires a database backend. You might also want to have a look at the Recess (http://www.recessframework.org/) framework, which might prove to be more suitable for the functionality you want to provide (it might also require a database backend though -- I haven't checked this). A few other possible solutions are also mentioned at the bottom of the Recess homepage with some very brief notes on key differences. In case that you prefer to rely on your experience with Delphi, rather than investing efforts in learning new development tools, then it might be interesting for you to check this article (if you haven't seen it already): http://blogs.embarcadero.com/pawelglowacki/2008/04/04/38508 (Building .NET 3.5 WCF RESTful web services with Delphi 2007) > Do you decide to refuse from statical URL and we need to use CMS for hosting > for this case or maybe we can remain the use of statical URL? Well, some of the essential characteristics of any RESTful webservice are the mapping of resources (objects) to URLs and the provision of some set of operations on these resources (e.g. POST, GET, PUT or DELETE). Obviously you cannot achieve this by using only static URLs. In fact, only the top-level (or entry point) URLs would be static (e.g. /dataset, /algorithm, /model, etc...). The general pattern for a URL would be /service/{serviceparameter}/smthelse/{param}. In summary, you would need to support dynamic URLs, but don't have to use necessarily a DBMS and/or CMS for achieving this. In fact you should rather use some development framework (similar to those mentioned above), which provides the building blocks for RESTful webservices implementation. This framework might require a DBMS or might have optional support for DBMS or could even work with simple flat files. Last but not least, for some store/retrieve operations (e.g. on dataset, algorithm, model, feature, etc...) you could rely on IDEA's OpenTox webservice, which already supports a large subset of them (available through the API v1.1). Kind regards, Vedrin PS: For your reference, here is a matrix of the existing implementations and the corresponding development frameworks, to the best of our knowledge (@All: please check and modify your entry if required): ALU-FR: Ruby, Sinatra (http://www.sinatrarb.com/)? IDEA: Java, Restlet (http://www.restlet.org/), Tomcat, MySQL IN-SILICO: Ruby, Ruby-on-Rails (http://rubyonrails.org/) NTUA: Java, Restlet (http://www.restlet.org/), Grizzly (https://grizzly.dev.java.net/) TUM: Java, Restlet (http://www.restlet.org/), Tomcat?
- Previous message: [OTDev] API 1.1. extensions - Numeric and Nominal data type implemented
- Next message: [OTDev] API 1.1
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
More information about the Development mailing list