Home > gae-web-services

gae-web-services

Gae-web-services is a project mainly written in PYTHON and PHP, it's free.

A collection of Google App Engine web services

RELEASE HISTORY

Update - Released Jan 4th 2011

  • AppMail: Added support for HTML emails with plain text fallback. Instead of passing "body" param, you now pass "plain" and optionally "html" POST params.

AppImage Update: On December 2nd, the GAE team released a significant update that now allows for images upto 32MB to be sent to your GAE apps. This basically renders AppImage no longer necessary. The code was originally written as a work around for the old 1MB limit. See Google's blog post about the newest updates to GAE: http://googleappengine.blogspot.com/2010/12/happy-holidays-from-app-engine-team-140.html

AppImage Version 2.0 - Released Feb 16th 2010

  • GAE: Includes support for working with files larger than 1mb (using GAE Blobstore - Billing enabled accounts only)
  • GAE: XML now used in request responses making it easier to check success and failure
  • GAE: Examples added to illustrate storage of multiple thumbnail sizes
  • GAE: Logging added to make it easier to see how the application is running in GAE Dashboard (should be removed for production environments)
  • PHP: Upload method now requires a filesize argument to be passed (not backwards compatible with previous release)
  • PHP: REST helper POST method updated to follow redirections during CURL operation in order for Blobstore calls to work
  • PHP: XML helper added to read responses
  • PHP: Tests updated to include both a small and large image and assertions to check image md5 hashes

Corresponding blog post: http://developinginthedark.com/posts/large-image-resizing-for-google-app-engine

PROJECT DETAILS

About

A collection of Google App Engine web services for outsourcing common tasks for web applications to a larger service provider - in this case Google's App Engine infrastructure. Currently the collection includes an Email app and Image Manipulation app with PHP/CakePHP libraries for interacting with them.

Current Web Services

AppImage - A Google App Engine app that allows you to store, view and manipulate images. AppMail - A Google App Engine app that simply allows you to send emails.

Setup

If you haven't already change the name of the folders from "appimagedemo"/"appmaildemo" to the names of your GAE apps. You'll also need to modify app.yaml "application:" config variable to the same name.

You'll need to set the "AUTH" constant in main.py to include your IP address and API Key. The API Key is just a random string, you just need to ensure that in your requests you pass the same random string to the App Methods that require it.

Authentication

Both applications include an authentication aspect to stop others using the app, data, and bandwidth. The authentication works by requiring an API Key to be passed when making requests to certain application methods. This API Key is then looked up in the "AUTH" dictionary in main.py which has a corresponding IP Address. If the requesters IP Address matches the one corresponding the API Key provided then the request will continue, if they don't match an exception is raised and the request is denied.

Libraries

Currently a PHP library is included for both web services. These libraries were designed as CakePHP vendors but should work fine in any PHP project. It would be great to see some more libraries for other languages, so please feel free to contribute new libraries and/or modify the existing ones.

References

For more info, check out the corresponding blog post at http://developinginthedark.com/posts/revving-with-google-app-engine Information about AppImage Version 2.0: http://developinginthedark.com/posts/appimage-updated-large-image-support-for-google-app-engine

AppImage is based on Appspotimage: http://code.google.com/p/appspotimage/ They have an excellent tutorial and show how a Google App Engine app can be integrated with 3Scale (an SaaS API Management tool)

Also check out Google's docs Google App Engine Mail Docs: http://code.google.com/appengine/docs/python/mail/sendingmail.html Google App Engine Image Docs: http://code.google.com/appengine/docs/python/images/imageclass.html Google App Engine Quotas Information: http://code.google.com/appengine/docs/quotas.html