Demos created for public lecture for Cloud Conf Varna (23 November 2013)
Website : https://sites.google.com/a/agilemates.com/cloudconf/
Github Repo :
https://github.com/dimitardanailov/cloud-endpoints-demo
https://github.com/dimitardanailov/cloud-end-points-android-demo
https://github.com/mvelikov/GoogleEndPoints
Еднодневна конференция във Варна на тема облачен софтуер - Cloud Computing.
CloudConf Varna 2013 е първата конференция в региона на Североизточна България, посветена на облачните софтуерни решения и свързаните с тях предизвикателства. Еднодневно събитие, организирано с много ентусиазъм от IT специалисти, насочено към колеги, студенти и всички заинтересовани. Отворено и безплатно, носещо идеалната цел да подпомогне сформирането на IT общество във Варна. Заповядайте и бъдете критични!
6. Overview
Google Cloud Endpoints consists of tools, libraries and capabilities that
allow you to generate APIs and client libraries from an App Engine
application, referred to as an API backend, to simplify client access to
data from other applications. Endpoints makes it easier to create a web
backend for web clients and mobile clients such as Android or Apple's
iOS.
14. public class Beer {
private
private
private
private
private
private
private
private
private
private
Long id ;
String beerName ;
String kindOfBeer ;
Long score ;
Long numberOfDrinks ;
Text image ;
String country ;
String description ;
Double latitude ;
Double longitude ;
public Long getId () {
return id ;
}
public void setId ( Long id ) {
this . id = id ;
}
// Getter and Setters
}
15. Java JDO support
Java Data Objects (JDO) is a specification of Java object persistence.
One of its features is a transparency of the persistence services to the
domain model. JDO persistent objects are ordinary Java programming
language classes (POJOs); there is no requirement for them to
implement certain interfaces or extend from special classes. JDO 1.0
was developed under the Java Community Process as JSR 12. JDO 2.0
was developed under JSR 243 and was released on May 10, 2006. JDO
2.1 was completed in Feb 2008, developed by the Apache JDO project.
JDO 2.2 was released in October 2008. JDO 3.0 was released in April
2010.
16. Java JDO support (2)
import
import
import
import
import
javax.jdo.annotations.IdGeneratorStrategy ;
javax.jdo.annotations.IdentityType ;
javax.jdo.annotations.PersistenceCapable ;
javax.jdo.annotations.Persistent ;
javax.jdo.annotations.PrimaryKey ;
@PersistenceCapable ( identityType = IdentityType. APPLICATION )
public class Beer {
@PrimaryKey
@Persistent ( valueStrategy = IdGeneratorStrategy. IDENTITY )
private Long id ;
17.
18. @Api
@Api(name = "birra")
In line 1 above we use the @Api attribute.
This attribute tells App Engine to expose this class as a RESTRPC
endpoints.
Be aware that all the public methods on this class will be accessible via
REST endpoint.
I have also changed the name to birra to match with the rest of the
application.
19. Commands
1. List Beers
a. curl http://localhost:8888/_ah/api/birra/v1/beer
2. Create a Bear
a. curl -H 'Content-Type: appilcation/json' -d
'{"beerName": "bud"}' http://localhost:
8888/_ah/api/birra/v1/beer
3. Get a Beer
a. curl http://localhost:8888/_ah/api/birra/v1/beer/1
41. Search
@ApiMethod(httpMethod = "GET", name = "beer.search")
public List < Beer > searchBeer(@Named("term") String queryString)
{
List < Beer > beerList = new ArrayList < Beer > ();
Results < ScoredDocument > results = INDEX.search(queryString );
for (ScoredDocument scoredDoc : results) {
try {
Field f = scoredDoc .getOnlyField ("id");
if (f == null || f.getText() == null) continue;
long beerId = Long.parseLong(f.getText());
if (beerId != -1) {
Beer b = getBeer(beerId);
beerList .add(b);
}
} catch (Exception e) {
e .printStackTrace ();
}
}
return beerList;
}
42.
43.
44. Tutorials
● Overview of Google Cloud Endpoints
● Deploy the Backend
● HTML5 and App Engine: The Epic Tag Team Take on Modern
Web Apps at Scale
● GDC 2013 - Connect Mobile Apps to the Cloud Without Breaking
a Sweat
● Google Cloud Endpoints - Varna Lab 25.09.2013