Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Appearance settings

JavaMonday/gcd-json-java

Open more actions menu
 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

31 Commits
31 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

GCD Json Java

GCD Json Java is a Java data access API designed for the Google App Engine datastore (https://cloud.google.com/datastore/docs/) through JSON API reference (https://cloud.google.com/datastore/docs/apis/v1beta2/). In this version, you can do basic actions like : commit, query and lookup.

To use library :

  • You need an appengine application (https://console.developers.google.com/project) with Google Cloud Datastore API status is On.
  • Some information to config. Choose your created project > APIs & auth (left menu) > Credentials > Create New Client ID > Chooose Service account > Create Client ID.
    • projectName : is your project id with "s~" before, example your project id : "your-project-id" -> projectName = "s~your-project-id".
    • iss : is Email address.
    • p12 key file : click Generate new P12 key, download, keyLocation variable is path to your p12 Key file.

Sample code :

  • Config
	String projectName = "s~your-project-id";
	String iss = "xxxx20893014-d1kh9putd2n3hbqjsjlsbes1i8spxxx@developer.gserviceaccount.com";
	String keyLocation = "your-project-id-xxxxx.p12";
	GCDConfig config = new GCDConfig(projectName, iss, keyLocation);
	GCDService ds = GCDServiceFactory.getInstance(config);
  • Registry your entry
    • Mark annotation @Entity for your entry.
    • Mark annotation @Id for entry key.
    • Mark annotation @Index for index field.
	import cloud.google.datastore.annotation.Annotation.Entity;
	import cloud.google.datastore.annotation.Annotation.Id;
	import cloud.google.datastore.annotation.Annotation.Index;

	@Entity
	public class Foo {

		@Id
		private String id = "";

		private String name = "";

		@Index
		private String category = "";

		@Index
		private Date doc = Calendar.getInstance().getTime();

		@Index
		private int status = 1;

	}
  • Commit
	// Insert single entry
	String projectName = "s~your-project-id";
	String iss = "xxxx20893014-d1kh9putd2n3hbqjsjlsbes1i8spxxx@developer.gserviceaccount.com";
	String keyLocation = "your-project-id-xxxxx.p12";
	GCDConfig config = new GCDConfig(projectName, iss, keyLocation);
	GCDService ds = GCDServiceFactory.getInstance(config);

	Foo f = new Foo();
	f.setId("entry-01");
	f.setName("Entry 01");
	List<Key<Foo>> listKey = ds.commit(Foo.class).entities(f).insert();	
	// Insert multi entry
	Foo f1 = new Foo();
	f1.setId("entry-01");
	f1.setName("Entry 01");

	Foo f2 = new Foo();
	f2.setId("entry-02");
	f2.setName("Entry 02");	

	List<Key<Foo>> listKey = ds.commit(Foo.class).entities(f1, f2).insert();
	// Insert list entry
	Foo f1 = new Foo();
	f1.setId("entry-01");
	f1.setName("Entry 01");

	Foo f2 = new Foo();
	f2.setId("entry-02");
	f2.setName("Entry 02");	

	List<Foo> list = new ArrayList<Foo>();
	list.add(f1);
	list.add(f2);

	List<Key<Foo>> listKey = ds.commit(Foo.class).entities(list).insert();
	// Update single entry
	Foo f = new Foo();
	f.setId("entry-01");
	f.setName("Entry 01");
	List<Key<Foo>> listKey = ds.commit(Foo.class).entities(f).update();	
	// Delete single entry
	Foo f = new Foo();
	f.setId("entry-01");
	f.setName("Entry 01");
	boolean success = ds.commit(Foo.class).entities(f).delete();	
  • Lookup
	// Lookup single entry
	String id = "entry-01";
	Foo lookupFoo = ds.lookup(Foo.class).id(f.getId()).get();	
	// Lookup multi entry
	String id1 = "entry-01";
	String id2 = "entry-01";
	List<Foo> listResult = ds.lookup(Foo.class).ids(id1, id2).list();	
	// Lookup list entry
	String id1 = "entry-01";
	String id2 = "entry-01";
	List<String> listId = new ArrayList<String>();
	listId.add(id1);
	listId.add(id2);
	List<Foo> listResult = ds.lookup(Foo.class).ids(listId).list();
  • Query
	// Query with limit
	List<Foo> list = ds.query(Foo.class).limit(10).list();	
	// Query with offset
	List<Foo> list = ds.query(Foo.class).offset(10).list();	
	// Query with order : ASCENDING, DESCENDING
	List<Foo> listOrderByDocASC = ds.query(Foo.class).order("doc", OrderDirection.ASCENDING).list();
	List<Foo> listOrderByDocDESC = ds.query(Foo.class).order("doc", OrderDirection.DESCENDING).list();
	// Query with filter : EQUAL, GREATER_THAN, GREATER_THAN_OR_EQUAL, LESS_THAN, LESS_THAN_OR_EQUAL
	List<Foo> listFilterByStatus = ds.query(Foo.class).filter("status", 1, FilterOperator.EQUAL).list();
	List<Foo> list = ds.query(Foo.class).filter("status", 1, FilterOperator.GREATER_THAN_OR_EQUAL).filter("status", 10, FilterOperator.LESS_THAN_OR_EQUAL).list();
	// Composite query
	List<Foo> list = ds.query(Foo.class).filter("status", 1, FilterOperator.GREATER_THAN_OR_EQUAL).limit(10).offset(10).order("doc", OrderDirection.ASCENDING).list();
	List<Foo> list = ds.gqlQuery(Foo.class).queryString("SELECT * FROM Foo").list();

About

Google Cloud Datastore Json API Java

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages

  • Java 100.0%
Morty Proxy This is a proxified and sanitized view of the page, visit original site.