14 noviembre 2013

AngularJS - Obteniendo publicaciones de Google+ a través de un servlet

Recientemente estoy probando el uso de AngularJS, un framework de javascript que es mantenido por Google. Me puse a experimentar cómo invocar a un servlet para que me provea datos por medio de un controller de angularjs. En este escenario estoy trayendo las publicaciones de un perfil de Google+.

Lo primero que hice fue construir mi servlet, efectuando la invocación al servicio. Debido a la facilidad que tiene AngularJS para trabajar con JSON, la respuesta que viene de la invocación la paso a dicho formato. Observen también la manera en que, a través del controller, se realiza la invocación al servlet. Finalmente, itero el resultado empleando el forEach con AngularJS.

A continuación, les dejo el código de este ejemplo. Si tienen algún comentario, consulta o ven alguna mejora que se le pueda hacer, siéntanse libres de escribirme.

var myModuleApp = angular.module('myModuleApp', ['ngSanitize']);
myModuleApp.controller('ActivityController', function ActivityController(
$scope, $http) {
$http.get('/myservlet').success(function(data, status) {
$scope.rpta = data;
$scope.status = status;
}).error(function(data, status) {
$scope.rpta = data || "Request failed";
$scope.status = status;
});
});
view raw controller.js hosted with ❤ by GitHub
<body ng-app="myModuleApp">
<div ng-controller="ActivityController">
<ul>
<li ng-repeat="item in rpta.items">
<div ng-bind-html="item.object.content"></div>
</li>
</ul>
</div>
</body>
view raw index.html hosted with ❤ by GitHub
public class MyServlet extends HttpServlet {
private static final String USER_ID = "";
private static final String APP_NAME = "";
private static final String API_KEY = "";
public void doGet(HttpServletRequest req, HttpServletResponse resp)
throws IOException {
HttpTransport httpTransport = new UrlFetchTransport();
JsonFactory jsonFactory = new JacksonFactory();
Plus plus = new Plus.Builder(httpTransport, jsonFactory, null)
.setApplicationName(APP_NAME)
.setGoogleClientRequestInitializer(
new PlusRequestInitializer(API_KEY)).build();
ActivityFeed myActivities = plus.activities()
.list(USER_ID, "public")
.setMaxResults((long) 5).execute();
List<Activity> lista = myActivities.getItems();
resp.setContentType("text/html; charset=UTF-8");
resp.getWriter().println(new Gson().toJson(myActivities));
}
}
view raw MyServlet.java hosted with ❤ by GitHub
Algunos enlaces que me fueron de utilidad:

Si recién vas a iniciar, te recomiendo el tutorial que se encuentra en la misma página de AngularJS:

No hay comentarios.: