/* * Copyright (C) 2012 Square, Inc. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package com.example.retrofit; import retrofit.RestAdapter; import javax.ws.rs.GET; import javax.ws.rs.Path; import javax.ws.rs.PathParam; import java.util.List; public class GitHubClient { private static final String API_URL = "https://api.github.com"; static class Contributor { String login; int contributions; } interface GitHub { @GET @Path("/repos/{owner}/{repo}/contributors") List<Contributor> contributors( @PathParam("owner") String owner, @PathParam("repo") String repo ); } public static void main(String... args) { // Create a very simple REST adapter which points the GitHub API endpoint. RestAdapter restAdapter = new RestAdapter.Builder() .setServer(API_URL) .build(); // Create an instance of our GitHub API interface. GitHub github = restAdapter.create(GitHub.class); // Fetch and print a list of the contributors to this library. List<Contributor> contributors = github.contributors("square", "retrofit"); for (Contributor contributor : contributors) { System.out.println(contributor.login + " (" + contributor.contributions + ")"); } } }