Mine just takes a query a straight query and the passes back a json result. See the example below:

url https://localhost/http-mysql.php?q=select * from locations limit 5

example output:

[{"zipcode":"00210","city":"Portsmouth","state":"NH","latitude":"43.005895","longitude":"-71.013202","timezone":"-5","dst":"1"},{"zipcode":"00211","city":"Portsmouth","state":"NH","latitude":"43.005895","longitude":"-71.013202","timezone":"-5","dst":"1"},{"zipcode":"00212","city":"Portsmouth","state":"NH","latitude":"43.005895","longitude":"-71.013202","timezone":"-5","dst":"1"},{"zipcode":"00213","city":"Portsmouth","state":"NH","latitude":"43.005895","longitude":"-71.013202","timezone":"-5","dst":"1"},{"zipcode":"00214","city":"Portsmouth","state":"NH","latitude":"43.005895","longitude":"-71.013202","timezone":"-5","dst":"1"}]



I have done this to allow for the most direct use of mysql queries with out any need for special translations or api. Of coarse I am currently working on a encryption method so it can be more secure. I also highly recommend only using this over https to allow for the most basic of protection. The way I have implemented this is to allow for any valid mysql query to be excepted. Also I will be adding more functionality so it will become a mysql proxy of sorts. That way you can use it just as a connector to any mysql server.

-James

On 16/07/10 3:36 PM, hector rovira wrote:
Don't worry I'm not bothered.

The only misunderstanding is that mine is not GAE specific.  Its REST
API can be (and has been) called from other languages (Matlab, R,
Perl), as well as from the command-line (curl, wget).
Now the JSON output by the Google Java Library is kind of hard to
consume (its meant to be used by Google's javascript visualization
library), but we are looking at providing alternate JSON outputs,
specifically to be used by a different visualization library (http://
vis.stanford.edu/protovis).  However the CSV and TSV outputs are well
suited for my clients (i.e. command-line scripts).

The intended use for my service is to provide a simple query interface
for scientific datasets.  So I have no transaction or domain modeling
concerns.  So my usage profile tends to be write-once/read-lots.

Is your service meant to support writes (INSERT, UPDATE, DELETE) as
well?  I'm assuming that you meant to call your http-mysql webapp from
a webapp running on GAE (or anywhere for that matter).  I'm also
curious about the kind of output that you'll be producing.

As far as support for other databases other than MySQL, I have the
advantage of leveraging JDBC which abstracts most of the database
specifics away from my code.

On Jul 15, 2:23 pm, James Jones<[email protected]>  wrote:
Its very similar but your's will allow for use of many different types
of databases and requires tomcat. Also is GAE specific. Mine is a little
more lite weight and only requires a web server that has php with mysqli
and json support. Mine can also be use by any language that do http
requests and understands json. The down side is that it only supports
MySQL. Just to be clear I am not knocking yours at all, just pointing
out the difference as I understand them. Please let me know if I missed
anything.

-James

On 14/07/10 6:26 PM, hector rovira wrote:

I have created a web service that may be similar to what you are
doing.  I use it as part of a service registry that runs on GAE and
provides a REST API used by visualizations, web UIs, command-line
scripts and other web services.
My service exposes the Google Visualizations Data Source API (http://
code.google.com/apis/visualization/documentation/dev/dsl_about.html)
as a REST web service, extending the Java library provided by Google.
I find this to be a comprehensive standard for providing read-only
access to databases.  The Google Java library outputs JSON, CSV, TSV,
HTML but it can easily be extended to provide a custom output format.
I have configured my web service to provide access to any table or
view in a MySQL database; but I've also been able to connect to other
databases with supported JDBC drivers (PostgreSQL, Derby, SqlServer),
although some of the GQL syntax is not supported by all databases
(e.g. limit, offset).
My service defines URIs of the form:  /service-name/database-name/
table-or-view-name.  It provides a simple REST API that allows users
to:
- list registered databases
- list tables (and views) within a database
- list columns (and datatypes) within a particular table (or view)
- submit queries that conform to the datasource wire protocol -
http://code.google.com/apis/visualization/documentation/dev/implement...
I just uploaded a standalone version that easily deploys to any J2EE
web app container (I use Apache Tomcat 6.x):
http://addama.googlecode.com/files/google-dsapi-svc.war.  You can
rename this war file.  Before you deploy it just include the following
files in the classpath ($TOMCAT_HOME/lib):
- the appropriate JDBC driver (jar file) ->    
http://dev.mysql.com/downloads/connector/j/5.0.html
- a configuration file called "google-dsapi-svc.config" containing
local database mappings in a JSON format.  For example:
          {
              locals: [
                  {
                      uri: "/google-dsapi-svc/demodb",
                      classname: "com.mysql.jdbc.Driver",
                      jdbcurl: "jdbc:mysql://hostname:port/
databasename",
                      username: "username",
                      password: "********"
                  }
              ]
          }
You can find some more information about my software at:  
http://cloud.addama.org
On Jul 14, 4:57 am, outcast<[email protected]>    wrote:
I am working on new project that will let me use mysql inside of GAE.
I just wanted to some other peoples thought on it. check 
outhttp://github.com/outcast/http-mysqlandlet me know what you think.
-James

--
You received this message because you are subscribed to the Google Groups "Google 
App Engine" group.
To post to this group, send email to [email protected].
To unsubscribe from this group, send email to 
[email protected].
For more options, visit this group at 
http://groups.google.com/group/google-appengine?hl=en.

Reply via email to