Google Cloud Endpoint (GCE) to Retrofit
Java Groovy
Switch branches/tags
Nothing to show
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Failed to load latest commit information.
gce2retrofit
gradle/wrapper
sample-android
sample-java
.gitignore
CONTRIBUTING.md
LICENSE
README.md
build.gradle
gradle.properties
gradlew
gradlew.bat
settings.gradle

README.md

gce2retrofit

Generates Retrofit interfaces and related models from Google Cloud Endpoint (GCE) discovery files.

Usage

Configuration files

Put the configuration files for each GCE server in a directory under src/main/gce2retrofit.

discovery.json (required)

The discovery doc from GCE. e.g. https://2-dot-test-pont.appspot.com/_ah/api/discovery/v1/apis/helloworld/v1/rest

methods.csv (optional)

Valid values are sync, async and reactive. If omitted, both synchronous and asynchronous interfaces will be generated.

classmap.tsv (optional)

Map fields with the specified names to the specified types.

room.json (optional)

Map classes/fields with specific room annotations and attributes.

Format:

{
  "class_name" : [
    {
      "annotation1" : "annotation_name1",
      "attributes" : {
        "attribute_name" : "value",
        "attribute_name_2" : "value_2"
      }
    }
  ],
  "class_name.field_name" : [
    {
      "annotation1" : "annotation_name1"
    },
    {
      "annotation2" : "annotation_name2"
    }
  ]
}

See gce2retrofit/src/test/resources/room/room.json for an example.

Code will be generated in build/generated/source/gce2retrofit/

See sample-java/src/main/gce2retrofit/helloworld for an example.

Gradle plugin

Apply the plugin in your build.gradle:

buildscript {
  repositories {
    jcenter()
    maven {
      url 'http://oss.sonatype.org/content/repositories/snapshots/'
    }
  }
  dependencies {
    classpath 'com.sqisland:gce2retrofit:1.5.0-SNAPSHOT'
  }
}

apply plugin: 'com.sqisland.gce2retrofit'

Upgrade guide

Version 1.1.0

Primitives have been replaced by Objects e.g. Integer instead of int. Please go through your code and make sure that you check for null before using the value of any Boolean, Integer, Float and Double.

Version 1.6.0

Room.json file has been updated so each type(class/field) takes a list of annotations.

Contributing

Please see CONTRIBUTING.md.