Skip to main content

Python client for GemFire's REST service

Project description

# py-gemfire-rest
=================

This library enables your python applications to use GemFire as a datastore. (GemFire is a distributed key-value store. A short tutorial can be found at http://goo.gl/rF93fn). This library exposes Spring's CrudRepository like methods in an effort to simplify GemFire's APIs while still giving access to advanced GemFire features (details below).

## Installation
---------------

Using pip installation is simple

$ sudo pip install gemfire-rest

or from source:

$ sudo python setup.py install

## Quick Start
--------------

1. Start the GemFire REST service by [following the instructions](http://gemfire.docs.pivotal.io/latest/userguide/index.html#gemfire_rest/setup_config.html)
2. Create a Region on the server (Region is a distributed ConcurrentMap in which GemFire stores the data).

gfsh>create region --name=orders --type=PARTITION

3.
```python
>>> from GemfireClient import *
>>> client = GemfireClient(hostname="localhost", port=8080)
>>> myRepo = client.create_repository("orders")
>>> myRepo.save(order)
```

where the order object has an "id" instance variable. The library handles converting the object to/from json.

## API Reference
----------------

This library exercises [GemFire's REST APIs](http://gemfire.docs.pivotal.io/latest/userguide/index.html#gemfire_rest/book_intro.html) for enabling your python application to use GemFire as its datastore. To get started, we create a client by providing a hostname and port for an already running endpoint.
```python
client = GemfireClient(hostname="localhost", port=8080)
```

For each type of Object that we want to store in GemFire, we create a repository (Please not that you will have to create a Region on the server with the same name as the repository).
```python
orders = client.create_repository("orders")
```
The client provides a method to look up all the Regions that have been created on the server already:
```python
client.list_all_regions()
```

GemfireClient also has methods for querying and function execution which we will see later.

### Repository
--------------

Just like Spring's CrudRepository interface, the following methods are available on the Repository
```python
save(entities) #saves one or more entities in GemFire
find(ids) #finds entities with the given ids
find_all() #returns all data in region
exists(id) #checks to see if an entity with the given id exists
delete(entities) #deletes the given entities from GemFire
delete_all() #deletes all data in the GemFire region
```

As the naming suggests, intention of these methods is pretty clear. One thing that needs to be highlighted here is that all entities need an identity; this library uses "id" instance variable as identity. So all entities that are stored in GemFire need to have an instance variable named "id".

### Region
----------

For advanced operations, we also provide access to Region, which defines the following methods:
```python
create(key, value) #will insert only if key does not exists
update(key, value) #will update only if the key exists
keys() # returns all keys in the region
compare_and_set(key, oldvalue, newvalue) #sets the key to newvalue only if current value is equal ot oldvalue
```

### Querying
------------
GemfireClient provides API for running ad-hoc [OQL queries](http://gemfire.docs.pivotal.io/latest/userguide/index.html#developing/querying_basics/chapter_overview.html) on the server.
```python
adhoc_query(query_string) #OQL query string
```

For faster performance, you will want to run prepared OQL queries. GemfireClient provides the following APIs for this:
```python
new_query(query_id, query_string) #registers and prepares the OQL query on the server
run_query(query_id, query_args) #runs the query with specified parameters
```

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

gemfire-rest-1.0.2.tar.gz (5.3 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

gemfire-rest-1.0.2.macosx-10.9-intel.exe (72.9 kB view details)

Uploaded Source

File details

Details for the file gemfire-rest-1.0.2.tar.gz.

File metadata

  • Download URL: gemfire-rest-1.0.2.tar.gz
  • Upload date:
  • Size: 5.3 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No

File hashes

Hashes for gemfire-rest-1.0.2.tar.gz
Algorithm Hash digest
SHA256 b2331f9d5b02dfde0b62f4b1cff068a5a164ef201c2335ac8853309d4e088bd5
MD5 53b63fcccbc98183deb8c40d8a4dabd3
BLAKE2b-256 aa9a7f6b528b05a76f8f61dddbe0610f90f103ecea3d11115996971748c32551

See more details on using hashes here.

File details

Details for the file gemfire-rest-1.0.2.macosx-10.9-intel.exe.

File metadata

File hashes

Hashes for gemfire-rest-1.0.2.macosx-10.9-intel.exe
Algorithm Hash digest
SHA256 ec777bcee7a209eff19933d8d3338efc2ab19e8c37148236cefa04c43e65b4d0
MD5 c146a1a150ad2e704c60fa9965abbf44
BLAKE2b-256 1d69f0a74cddb54875a3a9854d35ad31fcf37558efd063d9013a10e270112cf2

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page