Presentation is loading. Please wait.

Presentation is loading. Please wait.

Advanced topics in touchdevelop cloud services access to everything over the web Disclaimer: This document is provided “as-is”. Information and views expressed.

Similar presentations


Presentation on theme: "Advanced topics in touchdevelop cloud services access to everything over the web Disclaimer: This document is provided “as-is”. Information and views expressed."— Presentation transcript:

1 advanced topics in touchdevelop cloud services access to everything over the web Disclaimer: This document is provided “as-is”. Information and views expressed in this document, including URL and other Internet Web site references, may change without notice. You bear the risk of using it. This document does not provide you with any legal rights to any intellectual property in any Microsoft product. You may copy and use this document for your internal, reference purposes. © 2012 Microsoft Corporation. All rights reserved. Microsoft, Windows, and Windows Live are trademarks of the Microsoft group of companies. All other trademarks are property of their respective owners.

2 advanced topics in touchdevelop what it is o “meta API” retrieve all information visible in touchdevelop app outlook: callbacks, plugins (meta apps) o build on web standards HTTP, REST, JSON ✿ touchdevelop.com/help/cloudservices

3 advanced topics in touchdevelop architecture o front-ends TouchDevelop WP7 apptalks with Azure Web Service (any) browsertalks with Azure Web App o Windows Identity Foundation allows users to authenticate with Windows Live ID, Facebook o Azure web sitetalks with Azure Web Service web servicecontrols Azure Storage storage (public data) storage (private data)

4 advanced topics in touchdevelop Azure Storage (public) Azure Web Service Azure Web Site Windows Identity Foundation Azure Storage (private) WP7 devices with TouchDevelop app web browser

5 advanced topics in touchdevelop HTTP o HyperText Transfer Protocol o the protocol used by the World Wide Web

6 advanced topics in touchdevelop HTTP example o Request Headers GET HTTP/1.1 Host: Cache-Control: max-age=0 Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8 Accept-Encoding: gzip,deflate,sdch o Response Headers HTTP/ OK Content-Length: 451 Expires: -1 Date: Fri, 10 Feb :51:48 GMT Content-Type: application/json; charset=utf-8 Cache-Control: no-cache, no-store Pragma: no-cache

7 advanced topics in touchdevelop REST o REST (Representational State Transfer) is a lightweight alternative to mechanisms like RPC (Remote Procedure Calls) and Web Services (SOAP, WSDL, et al.). o RESTful applications use HTTP requests to post data (create and/or update), read data (e.g., make queries), and delete data. Thus, REST uses HTTP for all four CRUD (Create/Read/Update/Delete) operations.

8 advanced topics in touchdevelop REST here o Currently, only supported verb is ‘GET’ o All accesses are stateless

9 advanced topics in touchdevelop JSON o JSON (JavaScript Object Notation) is a lightweight data-interchange format. o two building blocks: a collection of name/value pairs (“object”, “record”, …) an ordered list of values (“array”, …)

10 advanced topics in touchdevelop JSON grammar json:string | number | boolean | array | object string/number/boolean follow grammar of corresponding JavaScript literals array: “ [ “ [json (“, ” comma)*] “ ] ” field: string “ : ” json object: “ [ “ field [(“, ” field)*] “ ] ” example [ “elem0”, 1, { “x” : “value of field x”, “y” : 42 }, false ]

11 advanced topics in touchdevelop JSON example o GET HTTP/1.1 { "kind":"script", "time": , "id":"ezdf", "url":"http://touchdevelop.com/ezdf", "name":"Smart Rail Table", "description":"", "userid":"yvfc", "username":"Sascha M. B.", "icon":"directions", "iconbackground":"#008000", "iconurl":"https://az31353.vo.msecnd.net/c01/wbso.png", "positivereviews":0, "comments":0, …

12 advanced topics in touchdevelop JSON example … "capabilities":[ {"name":"sourcegeolocation","iconurl":"https://az31353.vo.msecnd.net/c01/qzgl.png" }, {"name":"sinkweb","iconurl":"https://az31353.vo.msecnd.net/c01/mopx.png"} ], "flows":[], "haserrors":false, "rootid":"dgig", "updateid":"ezdf", "ishidden":false, "islibrary":false, "installations":0, "runs":0 }

13 advanced topics in touchdevelop main lists o /api/new-scripts o /api/top-scripts o /api/featured-scripts o /api/search?text=[text] o /api/users o /api/comments o /api/screenshots o /api/reviews o optional list parameters: ?count=[number]&continuation=[token]

14 advanced topics in touchdevelop publication properties o /api/[id] o /api/[scriptid]/text o /api/[scriptid]/ast o /api/[scriptid]/successors o /api/[scriptid]/base o /api/[userid]/scripts o /api/[scriptid or userid or commentid]/comments o /api/[scriptid or userid]/screenshots o /api/[commentid or scriptid or userid]/reviews o /api/[userid]/picture

15 advanced topics in touchdevelop apis: json o Web→download json Downloads a web service response as a JSON data structure Web→download json o Json Object→kind Gets a json kind (string, number, boolean, object, array) Json Object→kind o string: Json Object→to stringJson Object→to string o number: Json Object→to numberJson Object→to number o boolean: Json Object→to booleanJson Object→to boolean o object: Json Object→keys, Json Object→fieldJson Object→keysJson Object→field o array: Json Object→at, Json Object→countJson Object→atJson Object→count o

16 advanced topics in touchdevelop exercise ► in touchdevelop, write code that… Posts the names of new scripts Posts links to the urls of new scripts ► in touchdevelop, write code that figures out… of the (around) 100 new scripts, which have at least one ♥ ? ☁ (solution)http://touchdevelop.com/axaw

17 advanced topics in touchdevelop homework ► in your favorite language, write code that figures out… how many scripts are there? how many AST nodes does the biggest script have? which script got the most ♥ ? which user gave the most ♥ ? what is the longest script (number of lines)? which script got updated the most?

18 advanced topics in touchdevelop title o item 1 o Item 2 song→post to wall ☀ anecdote ☁ (link to sample)http://touchdevelop.com/velk ► an exercise ✿ a reference


Download ppt "Advanced topics in touchdevelop cloud services access to everything over the web Disclaimer: This document is provided “as-is”. Information and views expressed."

Similar presentations


Ads by Google