[LLVMdev] Proposal: REST and Ajax in LNT

Kristof Beyls kristof.beyls at arm.com
Tue Jun 30 13:29:43 PDT 2015


This sounds very interesting .

 

I’m all for not reinventing the wheel. I don’t have experience with frameworks to implement REST interfaces so can’t comment on which one is best suited for LNT.

 

Just a few questions off the top of my head:

Do you already have ideas for what the REST API roughly will look like?
Very close to the database structure, or something slightly higher-level?

Should the current existing URL scheme be extended to a full REST API; or do you think it’s best for the REST API to live in a separate “namespace”?

 

Thanks!

 

Kristof

 

From: llvmdev-bounces at cs.uiuc.edu [mailto:llvmdev-bounces at cs.uiuc.edu] On Behalf Of Chris Matthews
Sent: 30 June 2015 19:53
To: LLVM Developers Mailing List
Subject: [LLVMdev] Proposal: REST and Ajax in LNT

 

I think it would be super useful to give LNT a RESTful interface.  As LNT grows, it would be nice to be able to update some of the pages with Ajax(or json).  Especially for pages with long load times, it makes sense to be able to speed up load times, by fetching the data after page load. It would also allow us to build more dynamic pages, and allow non-web clients better structured access to LNT information.

 

We have been doing this to a degree already by adding &json=True parameters to some of the pages.  This approach is ad-hoc, serialization and exploitability have been a big pain. I think it is time to formalize the non-web interface, and use some technology to make it as rich and useful as possible.

 

Since we are not in the business of reinventing web technologies, I think we should use one of the preexisting flask frameworks for this.  I have experimented with two: Eve + eve-sqlalchmey and flask-RESTful.

 

http://python-eve.org <https://urldefense.proofpoint.com/v2/url?u=http-3A__python-2Deve.org&d=AwMFaQ&c=8hUWFZcy2Z-Za5rBPlktOQ&r=Mfk2qtn1LTDThVkh6-oGglNfMADXfJdty4_bhmuhMHA&m=2w-zKuHO6XKGe45Mp98iJPvAYkGZV_1z40LUQrrC8GY&s=m3f5xCrrNlH1r4TY3q-pzKYdpMp3dy4hzKs4REnVe0c&e=> 

https://flask-restful.readthedocs.org/en/0.3.3/ <https://urldefense.proofpoint.com/v2/url?u=https-3A__flask-2Drestful.readthedocs.org_en_0.3.3_&d=AwMFaQ&c=8hUWFZcy2Z-Za5rBPlktOQ&r=Mfk2qtn1LTDThVkh6-oGglNfMADXfJdty4_bhmuhMHA&m=2w-zKuHO6XKGe45Mp98iJPvAYkGZV_1z40LUQrrC8GY&s=6rrEYWcF4BibyeSK23X9xK_FXUfGlfwRY6zlb03TdC4&e=> 

 

If anyone in the community has some ideas on this I’d love to hear them.  Thus far, I hacked on Eve for an afternoon and could not get it to understand LNTs (admittedly obscure) database structure. Flask-RESTful looked simple, but more work to build the actual interfaces, though it seems like it might be a more natural fit for LNTs URL schema.

 

If no one has any options, I will try and integrate flaskRESTful into LNT.

 

 

 

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20150630/c563d167/attachment.html>


More information about the llvm-dev mailing list