reto2.011 apex api
DESCRIPTION
Technical workshop, presented by Gerald Martinez, Product Development Manager at Apex Tech, that aim and dive through interactive demonstrations of the building blocks of a Web 2.0 application. Explaining the use of the APEX RESTful API using C# and JQuery.TRANSCRIPT
![Page 1: Reto2.011 APEX API](https://reader036.vdocuments.mx/reader036/viewer/2022081505/5560cadcd8b42a3c158b499f/html5/thumbnails/1.jpg)
RETO 2.0Workshop#2: How to create a Web 2.0 Mash-up
using the ENDIAPI and Open API’s.
APEX Team:Gerald Martinez
![Page 2: Reto2.011 APEX API](https://reader036.vdocuments.mx/reader036/viewer/2022081505/5560cadcd8b42a3c158b499f/html5/thumbnails/2.jpg)
ENDIAPI
![Page 3: Reto2.011 APEX API](https://reader036.vdocuments.mx/reader036/viewer/2022081505/5560cadcd8b42a3c158b499f/html5/thumbnails/3.jpg)
Mashups
• Is a web page or application that uses or combines data or functionality from two or many more external sources to create a new service.
• Examples:http://twittervision.com/http://bcdef.org/flappr/http://www.tsmaps.com
![Page 4: Reto2.011 APEX API](https://reader036.vdocuments.mx/reader036/viewer/2022081505/5560cadcd8b42a3c158b499f/html5/thumbnails/4.jpg)
Purpose of the ENDIAPI
• Maximize the potential of El Nuevo Día primary asset: Content Creation
• Expand the boundaries of Content Syndication• Reach New Content Delivery Platforms.
![Page 5: Reto2.011 APEX API](https://reader036.vdocuments.mx/reader036/viewer/2022081505/5560cadcd8b42a3c158b499f/html5/thumbnails/5.jpg)
Architectural Design
ENDI DB
ENDIAPI
WWW Print Mobile Mashups Widgets
![Page 6: Reto2.011 APEX API](https://reader036.vdocuments.mx/reader036/viewer/2022081505/5560cadcd8b42a3c158b499f/html5/thumbnails/6.jpg)
RESTful API
• REST - Representational State Transfer– is a style of software architecture for distributed
hypermedia systems such as the World Wide Web.– REST-style architectures consist of clients and servers.
Clients initiate requests to servers; servers process requests and return appropriate responses.
– REST was initially described in the context of HTTP, but is not limited to that protocol
– REST over HTTP works with and enhances the native HTTP verbs, URI’s, request and response headers, request and response codes, etc.
![Page 7: Reto2.011 APEX API](https://reader036.vdocuments.mx/reader036/viewer/2022081505/5560cadcd8b42a3c158b499f/html5/thumbnails/7.jpg)
RESTful API
• A RESTful web service (also called a RESTful web API) is a simple web service implemented using HTTP and the principles of REST. It is a collection of resources, with three defined aspects:– the base URI for the web service, such as
http://api.elnuevodia.com/resources/.– the MIME type of the data supported by the web service. This is often
JSON, XML or YAML but can be any other valid MIME type.– the set of operations supported by the web service using HTTP
methods (e.g., POST, GET, PUT or DELETE).
![Page 8: Reto2.011 APEX API](https://reader036.vdocuments.mx/reader036/viewer/2022081505/5560cadcd8b42a3c158b499f/html5/thumbnails/8.jpg)
JSON
• JavaScript Object Notation, is a lightweight computer data interchange format.
• It is a text-based, human-readable format for representing simple data structures and associative arrays (called objects).
• The JSON format is often used for serialization and transmitting structured data over a network connection. Its main application is in Ajax web application programming, where it serves as an alternative to the XML format.
– Resource:http://www.json.org
![Page 9: Reto2.011 APEX API](https://reader036.vdocuments.mx/reader036/viewer/2022081505/5560cadcd8b42a3c158b499f/html5/thumbnails/9.jpg)
JSON vs. XML
{ "id" : 3445, "name" : "Noticias", "url" : "/noticias", "subsections" : [ { "id" : 3453, "name" : "Ciencia y Tecnología", "url" : "/subseccion--ciencia" }, { "id" : 3465, "name" : "Mundiales", "url" : "/subseccion--mundiales" }, { "id" : 3455, "name" : "Política", "url" : "/subseccion--politica" } ]}
<sections> <id>3445</id> <name>Noticias</name> <url>/noticias</url> <subsections> <id>3453</id> <name>Ciencia y Tecnología</name> <url>/subseccion—ciencia</url> <id>3465</id> <name>Mundiales</name> <url>/subseccion—mundiales</url> <id>3455</id> <name>Política</name> <url>/subseccion—politica</url> </subsections></sections>
http://api.elnuevodia.com/sections/
![Page 10: Reto2.011 APEX API](https://reader036.vdocuments.mx/reader036/viewer/2022081505/5560cadcd8b42a3c158b499f/html5/thumbnails/10.jpg)
ENDIAPI Documentation
• Uses HTTP Basic Authentication• Rate Limiting: Clients are allowed 100 requests per 60 sixty
minute time period, starting from their first request.• Pagination Limiting: Clients may request up to the last 31 days
of news articles via the page and count parameters. • Resources Available: Sections, News, Comments, Ultima Hora,
Horoscope, Movies, Climate and others.
– Debugcurl -u <username>:<password> –H “api_key: <APIKey>”
http://api.elnuevodia.com/sections/
– Referencehttp://www.apex.pr/reto/documents.htm
![Page 11: Reto2.011 APEX API](https://reader036.vdocuments.mx/reader036/viewer/2022081505/5560cadcd8b42a3c158b499f/html5/thumbnails/11.jpg)
ENDIAPI – C# Sample Codeusing System;using System.Web;using System.IO;using System.Net;using System.Text; // Create the web requestHttpWebRequest request = WebRequest.Create("http://api.elnuevodia.com/news/") as HttpWebRequest; // Add pre authentication to requestrequest.PreAuthenticate = true; // Add Authorization headerrequest.Headers.Add(HttpRequestHeader.Authorization, "Basic " + Convert.ToBase64String( new UTF8Encoding().GetBytes(String.Format("{0}:{1}", "<Username>", "Password")))); // Add API Key to headerrequest.Headers.Add(String.Format("api_key:{0}", "<API Key>")); // Get responseusing (HttpWebResponse response = request.GetResponse() as HttpWebResponse) { // Get the response streamStreamReader reader = new StreamReader(response.GetResponseStream()); // Console application output
Console.WriteLine(reader.ReadToEnd());
![Page 12: Reto2.011 APEX API](https://reader036.vdocuments.mx/reader036/viewer/2022081505/5560cadcd8b42a3c158b499f/html5/thumbnails/12.jpg)
Demo
• Summary: The example will show a simple mashup implementation where we mix output from ENDIAPI and Zemanta to get related articles and images from the internet. All the AJAX Handling and Page Rendering is done using JQUERY.
• References:http://reto.apex.pr/apex-api/http://www.zemanta.comhttp://www.jquery.com
![Page 13: Reto2.011 APEX API](https://reader036.vdocuments.mx/reader036/viewer/2022081505/5560cadcd8b42a3c158b499f/html5/thumbnails/13.jpg)
Questions
![Page 14: Reto2.011 APEX API](https://reader036.vdocuments.mx/reader036/viewer/2022081505/5560cadcd8b42a3c158b499f/html5/thumbnails/14.jpg)
Contacts
• http://reto.apex.pr/contact-us/
• Apex Team– gmartinez– [email protected]– carlosgmercado– [email protected]