ignite-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Alexey Kuznetsov <akuznet...@gridgain.com>
Subject Re: Ignite REST API is not actually RESTful
Date Mon, 20 Jun 2016 14:46:09 GMT
Pavel,

>> What is the use case?
As far as I know it could be used for quick testing. But I agree that it is
not mandatory.
Testing could be done with appropriate tools.


>>> large SQL query that could be fetched page by page
>>REST is stateless. This should be handled by the user (with LIMIT/OFFSET
in SQL).
In this case we will force users to implement complex solutions.
IMHO in some cases we could have state.


On Mon, Jun 20, 2016 at 9:37 PM, Pavel Tupitsyn <ptupitsyn@gridgain.com>
wrote:

> Alexey,
>
> > be able to run all command from browser address line
> What is the use case? Non-developers do not need that. Developers have
> better tools than a browser to test an API.
> GET requests must never modify data, this is very important. People and
> software assume GET to be safe.
>
> > large SQL query that could be fetched page by page
> REST is stateless. This should be handled by the user (with LIMIT/OFFSET in
> SQL).
>
> Pavel.
>
> On Mon, Jun 20, 2016 at 5:20 PM, Sergey Kozlov <skozlov@gridgain.com>
> wrote:
>
> > We also can consider to keep the compatibility and move new API either to
> > new http port or use new url (e.g. http://localhost:8080/api/rest
> instead
> > of http://localhost:8080/ignite)
> >
> > On Mon, Jun 20, 2016 at 5:15 PM, Alexey Kuznetsov <
> akuznetsov@gridgain.com
> > >
> > wrote:
> >
> > > Pavel,
> > >
> > > Current API was developed long time ago and was not actively developed.
> > > It may looks inconsistent for some use cases.
> > > May be it is a good idea to develop new API and deprecate current.
> > >
> > > From my experience we should take care:
> > > 1) "null" cache names
> > > 2) some commands could have state, for example large SQL query that
> could
> > > be fetched page by page
> > > 3) It will be "nice  to have" to be able to run all command from
> browser
> > > address line.
> > >
> > >
> > > On Mon, Jun 20, 2016 at 8:59 PM, Pavel Tupitsyn <ptupitsyn@apache.org>
> > > wrote:
> > >
> > > > Igniters,
> > > >
> > > > There are two serious issues with current Ignite REST API:
> > > >
> > > > 1) It does not care about HTTP verbs (GET/POST/etc).
> > > > GET must never modify anything, for example (because GET requests can
> > be
> > > > cached, duplicated, etc).
> > > >
> > > > 2) Proper resource paths are not used
> > > > For example, to get a cache value, instead of
> > > > GET /ignite?cmd=get&key=myKey&cacheName=partionedCache
> > > > it should be
> > > > GET /ignite/caches/partitionedCache/keys/myKey/
> > > >
> > > > Modify cache key:
> > > > PUT /ignite/caches/partitionedCache/keys/myKey/
> > > > DELETE /ignite/caches/partitionedCache/keys/myKey/
> > > >
> > > >
> > > > I think we should deprecate current API and provide a new one that
> > > follows
> > > > the guidelines.
> > > > A good writeup on a proper REST API design can be found there:
> > > > https://zalando.github.io/restful-api-guidelines/
> > > >
> > > >
> > > > Thoughts, comments?
> > > >
> > > > Pavel.
> > > >
> > >
> > >
> > >
> > > --
> > > Alexey Kuznetsov
> > > GridGain Systems
> > > www.gridgain.com
> > >
> >
> >
> >
> > --
> > Sergey Kozlov
> > GridGain Systems
> > www.gridgain.com
> >
>



-- 
Alexey Kuznetsov
GridGain Systems
www.gridgain.com

Mime
  • Unnamed multipart/alternative (inline, None, 0 bytes)
View raw message