<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Layer 7 - Blogs &#187; API Design &amp; Optimization</title>
	<atom:link href="http://www.layer7tech.com/blogs/index.php/category/api-optimization/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.layer7tech.com/blogs</link>
	<description>API Management &#124; SOA Governance &#124; Cloud Integration</description>
	<lastBuildDate>Thu, 16 May 2013 21:00:31 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.2.1</generator>
		<item>
		<title>Making Government Data “Easy to Find, Accessible &amp; Usable&#8221;</title>
		<link>http://www.layer7tech.com/blogs/index.php/making-government-data-easy-to-find-accessible-usable/</link>
		<comments>http://www.layer7tech.com/blogs/index.php/making-government-data-easy-to-find-accessible-usable/#comments</comments>
		<pubDate>Fri, 10 May 2013 21:00:16 +0000</pubDate>
		<dc:creator>Mike Amundsen</dc:creator>
				<category><![CDATA[API Academy]]></category>
		<category><![CDATA[API Design & Optimization]]></category>
		<category><![CDATA[API Management]]></category>
		<category><![CDATA[Government]]></category>

		<guid isPermaLink="false">http://www.layer7tech.com/blogs/?p=4274</guid>
		<description><![CDATA[On May 9, 2013 the White House released an executive order with the title Making Open &#38; Machine Readable the New Default for Government Information. My favorite line in the entire document is: “Government information shall be managed as an asset throughout its life cycle to promote interoperability and openness, and, wherever possible and legally [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.layer7tech.com/blogs/wp-content/uploads/2013/05/whitehouse.gif"><img class="alignleft size-medium wp-image-4295" style="margin-left: 1px; margin-right: 6px;" title="whitehouse" src="http://www.layer7tech.com/blogs/wp-content/uploads/2013/05/whitehouse-300x200.gif" alt="" width="300" height="200" /></a>On May 9, 2013 the White House released an executive order with the title <a href="http://www.whitehouse.gov/the-press-office/2013/05/09/executive-order-making-open-and-machine-readable-new-default-government-" target="_blank">Making Open &amp; Machine Readable the New Default for Government Information</a>. My favorite line in the entire document is:</p>
<p>“Government information shall be managed as an asset throughout its life cycle to promote interoperability and openness, and, wherever possible and legally permissible, to ensure that data are released to the public in ways that make the data <strong>easy to find, accessible, and usable</strong>” (emphasis mine).</p>
<p><strong>No Dumping</strong><br />
The usual approach to this type of work is to simply publish raw data in a directory or repository and then create some fencing around the data that helps track usage and distribution. Essentially, making government data “open” becomes a <a href="http://www.google.com/url?q=https%3A%2F%2Fdevelopers.google.com%2Ffreebase%2Fdata" target="_blank">data dumping </a>operation. This practice fails on all of President Obama’s three key points. First, data dumps make finding valuable information not at all easy. Second, even though the content might appear in a standard format like XML, CSV or JSON, it is hardly accessible (except for to geeks, who love this kind of stuff). And finally, raw data is hardly ever usable. Instead, it’s a mind-numbing pile of characters and quote marks that must be massaged and re-interpreted before it comes close to usability.</p>
<p>So, while this new directive offers an opportunity to make available a vast amount of the data the government collects on our behalf, the devil is in the details. And the details are in the interface – the API. As with poorly-designed kitchen appliances and cryptic entertainment center remote controls, when it takes extensive documentation to explain how to use something, the design has failed. There&#8217;s a simple principle here. Poor API design results in unusable data.</p>
<p><strong>Affordable Data</strong><br />
It doesn&#8217;t have to be this way, of course. Government departments have the opportunity to <a href="http://www.drdobbs.com/architecture-and-design/making-apis-attractive-to-developers/240153548" target="_blank">implement designs</a> that meet the goals set forth in the executive order. They can make it easy for people to find, access and use the data. They can publish not just data but APIs that <a href="http://www.layer7tech.com/blogs/index.php/if-they-have-to-ask-you-didnt-afford-it/" target="_blank">afford</a> searching, filtering and exploring the data in a meaningful and helpful manner; APIs that empower both users and developers to successfully interact with the data, without resorting to <a href="https://explore.data.gov/catalog/raw" target="_blank">a dashboard featuring dozens of options</a> or <a href="https://explore.data.gov/profile/Data-gov-Program-Management-Office/e8ug-wzay" target="_blank">mind-numbing explanations</a>.</p>
<p>In the (likely) event that the initial open data release consists of mere data, companies and individuals would be well advised to resist the temptation to build a multitude of “one-off” applications, each of which solves a single problem or answers a narrow set of questions for some subset of the data. Instead, work should be put into converting the raw data into usable API formats such as Atom, OData, HAL, Collection+JSON and HTML (to name just a few). APIs should be designed with the same care that would be given to any <a href="http://www.layer7tech.com/blogs/index.php/api-design-tutorial-the-interaction-model/" target="_blank">interactive experience</a>.  Investment in <a href="http://www.layer7tech.com/" target="_blank">tools and technologies</a> that can properly represent the data in multiple formats while supporting various use cases and access requirements will yield great results.</p>
<p><strong>Open Data APIs</strong><br />
In the end, organizations that know the importance of a good interface, the power of choice and the freedom of flexible representations will be able to convert raw data into valuable information, which can be consumed by a wide range of users, platforms and devices. These considerations are essential to building and supporting open data APIs.</p>
<p>Because – ultimately – data isn’t open, unless it’s “easy to find, accessible, and usable”.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.layer7tech.com/blogs/index.php/making-government-data-easy-to-find-accessible-usable/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Want ROI from Your APIs? Then Lower the Cost of Building Them</title>
		<link>http://www.layer7tech.com/blogs/index.php/want-roi-from-your-apis-then-lower-the-cost-of-building-them/</link>
		<comments>http://www.layer7tech.com/blogs/index.php/want-roi-from-your-apis-then-lower-the-cost-of-building-them/#comments</comments>
		<pubDate>Fri, 12 Apr 2013 23:45:20 +0000</pubDate>
		<dc:creator>Dimitri Sirota</dc:creator>
				<category><![CDATA[API Design & Optimization]]></category>
		<category><![CDATA[API Management]]></category>
		<category><![CDATA[Developers & Development]]></category>
		<category><![CDATA[API Design]]></category>

		<guid isPermaLink="false">http://www.layer7tech.com/blogs/?p=4209</guid>
		<description><![CDATA[I often hear the term “ROI” used in reference to an API program. Often, it is the discussed in the context of getting either direct revenue from an API or growing reach from an API, which in some places, translates into a lower cost of customer acquisition. While both direct revenue and reach are admirable [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.layer7tech.com/products/layer-7-api-gateways-overview" target="_blank"><img class="size-full wp-image-4210 alignleft" style="margin: 10px;" src="http://www.layer7tech.com/blogs/wp-content/uploads/2013/04/Internal-External-Developers-v2.jpg" alt="Internal and External Developers" width="300" height="144" /></a>I often hear the term “ROI” used in reference to an API program. Often, it is the discussed in the context of getting either direct revenue from an API or growing reach from an API, which in some places, translates into a lower cost of customer acquisition. While both direct revenue and reach are admirable goals, ROI from an API program is not limited to the number and quality of external developers.</p>
<p>For instance, most organizations will derive far more immediate payback from an API initiative if it enables internal developers, enterprise mobility initiatives, tighter partner integrations or even IT rationalization through hybrid cloud. Each of these endeavours will pay dividends in terms of productivity, agility, distribution and lowered IT costs. Each deserves its own dedicated discussion. However, underpinning all of these API business drivers  – external developers included – there is one often-overlooked consideration for cost and return in any API program: how do you introduce and innovate new APIs cost effectively?</p>
<p>Obviously, there are many ways to stand up an API. Many packaged software applications have some kind of API already, even if some are XML- or SOAP- centric. But in many instances, nothing exists except the desire to expose a piece of functionality or quantity of data as an API. Programmers can obviously build “programmable  interfaces” onto almost anything. It just takes time and people. However, the results will be brittle and the journey expensive.</p>
<p>A faster, less costly and more flexible route is to use an adaptation layer that can talk to various application or data backends and dynamically render one or more as an API. Using a backend adaptation layer can, with the right product, also solve the related problem of iterating on an API, both in terms of versioning but also composition. Add to that the promise of facilitating new business functionality by orchestrating API interactions with external mobile, social and cloud services and you get a pretty compelling ROI story.</p>
<p>Not surprisingly, Layer 7 provides such an adaptation layer. <a href="http://www.layer7tech.com/products/layer-7-api-gateways-overview" target="_blank">Our API Gateways</a> provide more than just security and management; they simplify backend connectivity, new API formation (i.e. composition) and novel orchestrations with all kinds of cloud, social and mobile services. Like many of our API compatriots, we provide tools that help enterprises build and foster developer ecosystems. But we also realized early on that much of the cost and potential of an API program will rest on how quickly and cost-effectively new services can be launched and evolved. Something worth considering the next time you evaluate the ROI of an API program.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.layer7tech.com/blogs/index.php/want-roi-from-your-apis-then-lower-the-cost-of-building-them/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>If They Have to Ask, You Didn&#8217;t Afford It</title>
		<link>http://www.layer7tech.com/blogs/index.php/if-they-have-to-ask-you-didnt-afford-it/</link>
		<comments>http://www.layer7tech.com/blogs/index.php/if-they-have-to-ask-you-didnt-afford-it/#comments</comments>
		<pubDate>Wed, 20 Mar 2013 22:00:30 +0000</pubDate>
		<dc:creator>Mike Amundsen</dc:creator>
				<category><![CDATA[API Academy]]></category>
		<category><![CDATA[API Design & Optimization]]></category>
		<category><![CDATA[Developers & Development]]></category>

		<guid isPermaLink="false">http://www.layer7tech.com/blogs/?p=4050</guid>
		<description><![CDATA[My guess is you are familiar with the phrase “If you have to ask, you can&#8217;t afford it”. Well, that&#8217;s not what I mean here. Let me show you what I’m actually getting at&#8230; If They Have to Ask&#8230; Try this: Create a new Web API Get it up and running on some server or [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.flickr.com/photos/ogil/1507585665/" target="_blank"><img class="size-full wp-image-4056 alignleft" style="margin-left: 20px; margin-right: 20px;" title="Question Mark" src="http://www.layer7tech.com/blogs/wp-content/uploads/2013/03/Question-Mark-v3.jpg" alt="Question Mark" width="230" height="300" /></a>My guess is you are familiar with the phrase “If you have to ask, you can&#8217;t afford it”. Well, that&#8217;s not what I mean here. Let me show you what I’m actually getting at&#8230;</p>
<p><strong>If They Have to Ask&#8230;</strong><br />
Try this:</p>
<ul>
<li>Create a new Web API</li>
<li>Get it up and running on some server or other</li>
<li>Hand the single URL to a client dev and say: “There ya go!”</li>
</ul>
<p>Is the API self-descriptive? Does it contain enough information in the responses to allow client devs to know what the API is for, what it is capable of and how they can make valid requests to the server and properly parse the responses?</p>
<p>Here are some questions for you:</p>
<ul>
<li>How many assumptions do you have about your API?</li>
<li>Are these assumptions shared by client devs?</li>
<li>All clients devs?</li>
<li>Even ones who have never met you?</li>
</ul>
<p>If your answer to any of those questions was “No” or &#8220;I’m not sure” then it’s likely that devs will need to ask you a thing or two about how to properly use your API. That&#8217;s no big deal, right?</p>
<p><strong>&#8230;You Didn&#8217;t Afford It</strong><br />
In everyday life, if people have to ask how to use a device (television remote, toaster etc.) then you can be sure that device is “poorly afforded” – it&#8217;s a case of <a href="http://www.jnd.org/dn.mss/affordances_and.html" target="_blank">weak design</a>. We all know devices (especially electronics) that come with huge manuals and complicated explanations – and we all know what a bummer it is when that happens.</p>
<p>In this respect, your API is the same as any other consumer device. It should be <a href="http://www.jnd.org/dn.mss/affordance_conv.html" target="_blank">“well afforded”</a> – developers shouldn’t have to read the technical equivalent of <em>War &amp; Peace</em> before they are able to successfully use your API.</p>
<p>Yes, you can supply <a href="http://uswest.ensembl.org/info/docs/api/core/core_tutorial.html#introduction" target="_blank">detailed instructions</a> in prose, provide a <a href="http://developer.saplo.com/methods" target="_blank">long list</a> of possible methods, include <a href="http://smsified.com/sms-api-documentation/reference" target="_blank">lots of tables</a> etc. These resources are helpful for devs but they can be daunting to read and cumbersome to maintain.</p>
<p>Another approach is to include this kind of information in a machine-readable format – and one that most devs will also understand quickly. This can be achieved by providing instructions (that get automatically updated whenever your API changes) via <a href="http://developer.github.com/v3/#hypermedia" target="_blank">hypermedia</a> <a href="http://nicksda.apotomo.de/2013/02/collectionjson-support-in-roar/" target="_blank">controls</a> in the response. Why write a Web page of documentation to tell devs to construct a URI and use that URI to execute an HTTP GET when you can just <a href="http://haltalk.herokuapp.com/explorer/hal_browser.html#/" target="_blank">include that (and much more)</a> information in your API responses?</p>
<p>Help your client devs out. Throw &#8216;em a bone, here. Don&#8217;t make them read pages of documentation when you can just include simple run-time instructions as they’re needed.</p>
<p><strong>In conclusion: If they have to ask, you didn&#8217;t afford it.</strong></p>
<p>(Originally published <a href="http://amundsen.com/blog/archives/1141" target="_blank">on my personal blog</a>.)</p>
]]></content:encoded>
			<wfw:commentRss>http://www.layer7tech.com/blogs/index.php/if-they-have-to-ask-you-didnt-afford-it/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Nation Building in the Age of APIs</title>
		<link>http://www.layer7tech.com/blogs/index.php/nation-building-in-the-age-of-apis/</link>
		<comments>http://www.layer7tech.com/blogs/index.php/nation-building-in-the-age-of-apis/#comments</comments>
		<pubDate>Sat, 09 Mar 2013 00:27:33 +0000</pubDate>
		<dc:creator>Matt McLarty</dc:creator>
				<category><![CDATA[API]]></category>
		<category><![CDATA[API Academy]]></category>
		<category><![CDATA[API Design & Optimization]]></category>
		<category><![CDATA[API Management]]></category>
		<category><![CDATA[API Security]]></category>
		<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://www.layer7tech.com/blogs/?p=4027</guid>
		<description><![CDATA[I’ve been working with a number of companies lately on their API strategies.  People seem to recognize that having an API is modern day necessity, but they’re not sure how to get started.  Since APIs are viewed as a technical innovations, responsibility for rolling them out is frequently handed to IT groups. Clearly, there is [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.layer7tech.com/blogs/wp-content/uploads/2013/03/nations-blog-Graphic1.jpg"><img class="alignleft size-full wp-image-4042" style="padding-right: 15px;"title="nations-blog-Graphic" src="http://www.layer7tech.com/blogs/wp-content/uploads/2013/03/nations-blog-Graphic1.jpg" alt="" width="300" height="220" /></a>I’ve been working with a number of companies lately on their API strategies.  People seem to recognize that having an API is modern day necessity, but they’re not sure how to get started.  Since APIs are viewed as a technical innovations, responsibility for rolling them out is frequently handed to IT groups.</p>
<p>Clearly, there is business value to be attained by companies who utilize an API, and an accessible web API is a requirement for modern corporations.  For companies looking to launch an API, there is a temptation to focus on the technological aspects of implementation.  Good API design, architecture, and infrastructure are vital to the success of a company’s API, but there are other areas to address first.  I am currently reading the book “<a href="http://whynationsfail.com/">Why Nations Fail</a>”, and recently read “<a href="http://www.amazon.ca/Thinking-Fast-Slow-Daniel-Kahneman/dp/0385676514">Thinking Fast and Slow</a>” by Daniel Kahneman.  Although the former is a geopolitical study whereas the latter focuses on the human mind, both share an identical observation that is the foundation of their arguments: a great amount of economic study is flawed because it fails to account for human behavior and tendencies.  I feel the same way about technology.</p>
<p>Every paradigm shift in technology has been driven by both innovation—the new technology itself—and application—how that technology can be used.  In other words, there is a machine side and a people side to every technology change.  The technologists responsible for implementing these changes often bias towards their comfort zone—the machine side—and overlook the people side.  This has led to frustration for companies who invest significantly in new technology only to miss the intended benefits of the change.  For APIs, the people side of the change is especially important.  In fact, the social nature of the API world means there are even more groups of people to consider.  Ultimately, the success of a company’s API will depend on the creation of a diverse community for that API—end users, partners, developers, and more—as well as the adoption of a business model that allows the API to contribute to the company’s bottom line.  Taking the community and the economics together, this means you will need to build a nation for your API.</p>
<p>Some of the biggest companies on the web have taken this approach with their APIs, and I recently explored some of their winning tactics in this <a href="http://venturebeat.com/2013/03/08/5-lessons-from-api-giants-like-twitter-and-google/">VentureBeat article</a>.  Please have a read and let me know your thoughts, and perhaps your own API lessons</p>
]]></content:encoded>
			<wfw:commentRss>http://www.layer7tech.com/blogs/index.php/nation-building-in-the-age-of-apis/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>API Design Tutorial: Pagination</title>
		<link>http://www.layer7tech.com/blogs/index.php/api-design-tutorial-pagination/</link>
		<comments>http://www.layer7tech.com/blogs/index.php/api-design-tutorial-pagination/#comments</comments>
		<pubDate>Wed, 19 Dec 2012 17:00:43 +0000</pubDate>
		<dc:creator>Ronnie Mitra</dc:creator>
				<category><![CDATA[API]]></category>
		<category><![CDATA[API Academy]]></category>
		<category><![CDATA[API Design & Optimization]]></category>
		<category><![CDATA[API Management]]></category>
		<category><![CDATA[Tutorials]]></category>
		<category><![CDATA[Web API]]></category>

		<guid isPermaLink="false">http://www.layer7tech.com/blogs/?p=3510</guid>
		<description><![CDATA[At the Layer 7 API Academy, we&#8217;ve had a few requests from API designers who are seeking strategies for handling large amounts of data in API responses.  Pagination is the most common method for addressing this scenario. Pagination, which is very common on the Web, allows API architects to conserve resources, improve response times and [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.layer7tech.com/library/videos/api-academy-use-pagination-in-web-api-design/2821" target="_blank"><img class="alignleft size-full wp-image-3609" style="margin: 0px 10px;" title="Layer 7 Pagination Tutorial" src="http://www.layer7tech.com/blogs/wp-content/uploads/2012/12/Layer-7-Pagination-Tutorial-v2.jpg" alt="Layer 7 Pagination Tutorial" width="300" height="245" /></a></p>
<p>At <a href="http://forms.layer7tech.com/api-academy2?source=L7blog" target="_blank">the Layer 7 API Academy</a>, we&#8217;ve had a few requests from API designers who are seeking strategies for handling large amounts of data in API responses.  Pagination is the most common method for addressing this scenario. Pagination, which is very common on the Web, allows API architects to conserve resources, improve response times and optimize the user experience. It&#8217;s a way of splitting up data into &#8220;pages&#8221; and is used in just about any API that returns collections of data.</p>
<p>I&#8217;ve released a short video tutorial titled <strong><a href="http://www.layer7tech.com/library/videos/api-academy-use-pagination-in-web-api-design/2821" target="_blank">Use Pagination in Web API Design</a></strong> to introduce the ins and outs of the interface. This video provides a crash course explaining pagination and outlining how to use it effectively in the design of Web APIs. I couldn&#8217;t fit all the implementation considerations I wanted in this six-minute tutorial, so watch out for a follow-up video on the subject.</p>
<p><iframe width="576" height="324" src="http://www.youtube.com/embed/n8K8nHkYwdQ?wmode=transparent" frameborder="0" allowFullScreen> </iframe></p>
]]></content:encoded>
			<wfw:commentRss>http://www.layer7tech.com/blogs/index.php/api-design-tutorial-pagination/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Three Common Web Architecture Styles</title>
		<link>http://www.layer7tech.com/blogs/index.php/three-common-web-architecture-styles/</link>
		<comments>http://www.layer7tech.com/blogs/index.php/three-common-web-architecture-styles/#comments</comments>
		<pubDate>Fri, 14 Dec 2012 17:00:26 +0000</pubDate>
		<dc:creator>Mike Amundsen</dc:creator>
				<category><![CDATA[API Academy]]></category>
		<category><![CDATA[API Design & Optimization]]></category>
		<category><![CDATA[API Management]]></category>

		<guid isPermaLink="false">http://www.layer7tech.com/blogs/?p=3560</guid>
		<description><![CDATA[When talking to clients about the architectural details of an implementation, one of the first questions I ask is: “What architectural style is appropriate for this Web solution?” It turns out this question stumps most of my audience. Not many system architects and developers think about it. Instead, they implement solutions using whatever components and [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.layer7tech.com/library/videos/api-academy-three-common-web-architecture-styles/2812?source=L7blog" target="_blank"><img class="alignleft size-full wp-image-3571" style="margin: 0px 10px;" title="Three Common Architecture Styles" src="http://www.layer7tech.com/blogs/wp-content/uploads/2012/12/Three-Common-Architecture-Styles-v3.jpg" alt="Three Common Architecture Styles" width="207" height="300" /></a>When talking to clients about the architectural details of an implementation, one of the first questions I ask is: <a href="http://www.layer7tech.com/library/videos/api-academy-three-common-web-architecture-styles/2812?source=L7blog" target="_blank">“What architectural style is appropriate for this Web solution?”</a> It turns out this question stumps most of my audience. Not many system architects and developers think about it. Instead, they implement solutions using whatever components and frameworks are on hand.</p>
<p>Each technology, service or coding framework exhibits its own “style” for solving a problem. Sometimes we select a system component because it’s familiar (“We use SQL databases because that’s what we’ve always used”). Sometimes we include one because it’s unfamiliar (“We’ve never used Node.js before, let’s try it on this project”). And sometimes we select components based on skill set (“Our team doesn’t have any experience with WebSockets, so let’s just use HTTP instead”). It’s important to step back and get a big picture view when selecting components for a production system that will (hopefully) serve your needs for an extended period of time. And that’s where architectural styles come into play.</p>
<p>Architectural styles set the tone for how components in a system interact, govern the implementation details and establish lines of responsibility and maintenance over time. Setting the style early on and communicating it to the team ahead of time goes a long way toward creating a stable and successful implementation. To help clients get a handle on this topic, I commonly identify three widely varying-styles for Web solutions that people can easily recognize: Tunneling, Objects and Hypermedia.</p>
<p>The Tunneling style is best illustrated by SOAP-based implementations where all requests are “tunneled” through a limited set of components (user management, product services etc.) exposed on the Web. The Object style is one that uses the HTTP CRUD pattern (create-read-update-delete) where domain objects (users, products etc.) are exposed and basic read/write operations are supported for those objects. The Hypermedia style relies on a shared understanding through a message format (media type) that defines both the data elements (users, products etc.) and the possible actions (read, write, filter, report etc.) on those data elements. Each of these styles can be used to implement a solution and each of them has associated benefits and challenges.</p>
<p>This comes up so often that we’ve created <a href="http://www.layer7tech.com/library/videos/api-academy-three-common-web-architecture-styles/2812?source=L7blog" target="_blank">a short API Academy video</a> introducing the subject of architectural styles for the Web. Take a look and see if it gives you some ideas for how you can answer this question the next time you are about to embark on a major system implementation: “What architectural style is appropriate for this Web solution?”</p>
<p><iframe width="576" height="324" src="http://www.youtube.com/embed/GEZaqRDLhTA?wmode=transparent" frameborder="0" allowFullScreen> </iframe></p>
]]></content:encoded>
			<wfw:commentRss>http://www.layer7tech.com/blogs/index.php/three-common-web-architecture-styles/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>API Design Tutorial: The Interaction Model</title>
		<link>http://www.layer7tech.com/blogs/index.php/api-design-tutorial-the-interaction-model/</link>
		<comments>http://www.layer7tech.com/blogs/index.php/api-design-tutorial-the-interaction-model/#comments</comments>
		<pubDate>Mon, 10 Dec 2012 22:00:06 +0000</pubDate>
		<dc:creator>Ronnie Mitra</dc:creator>
				<category><![CDATA[API]]></category>
		<category><![CDATA[API Academy]]></category>
		<category><![CDATA[API Design & Optimization]]></category>
		<category><![CDATA[API Management]]></category>
		<category><![CDATA[Web API]]></category>

		<guid isPermaLink="false">http://www.layer7tech.com/blogs/?p=3425</guid>
		<description><![CDATA[API design can be daunting. With so many decisions to make and so many differing opinions available on interface design, it&#8217;s easy to feel frustrated by the process.  Even worse, it&#8217;s possible to follow bad advice and end up designing an API that developers hate using. That&#8217;s why we at the API Academy stress the [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.youtube.com/watch?v=vINyz_lWzCQ" target="_blank"><img class="alignleft size-full wp-image-3525" style="margin: 0px 10px; border: 1px solid grey;" title="API  Academy - The Interaction Model" src="http://www.layer7tech.com/blogs/wp-content/uploads/2012/12/API-Academy-Interaction-Model-v2.jpg" alt="API  Academy - The Interaction Model" width="300" height="175" /></a>API design can be daunting. With so many decisions to make and so many differing opinions available on interface design, it&#8217;s easy to feel frustrated by the process.  Even worse, it&#8217;s possible to follow bad advice and end up designing an API that developers hate using.</p>
<p>That&#8217;s why we at the <a href="http://www.layer7tech.com/services/layer-7-api-academy" target="_blank">API Academy</a> stress the importance of making rational decisions rather than irrationally selecting design patterns based on emotion or trends.  We want you to <em>choose</em> your design elements rather than <em>picking</em> them from the latest set of formats or technologies that you&#8217;ve heard about.</p>
<p>And that&#8217;s why we&#8217;re working on a series of tutorial videos, as my colleague Mike Amundsen <a href="http://www.layer7tech.com/blogs/index.php/our-first-api-academy-videos/" target="_blank">recently announced</a>. The first of these videos, titled <a href="http://www.youtube.com/watch?v=vINyz_lWzCQ" target="_blank">The API Interaction Model &#8211; An Introduction</a>, provides an overview of  a design process that will help you consider your user&#8217;s perspective in order to make effective design choices later. The ideas I discuss in this video are rooted in user-centered design processes that have been very effective in the software and product design worlds.</p>
<p>If you&#8217;re currently designing an API, invest five minutes and watch the video.  It should be time well spent.</p>
<p><iframe width="576" height="324" src="http://www.youtube.com/embed/vINyz_lWzCQ?wmode=transparent" frameborder="0" allowFullScreen> </iframe></p>
]]></content:encoded>
			<wfw:commentRss>http://www.layer7tech.com/blogs/index.php/api-design-tutorial-the-interaction-model/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Tech Talk Tuesday: Applying the USE Paradigm When Designing Your APIs</title>
		<link>http://www.layer7tech.com/blogs/index.php/tech-talk-tuesday-applying-the-use-paradigm-when-designing-your-apis/</link>
		<comments>http://www.layer7tech.com/blogs/index.php/tech-talk-tuesday-applying-the-use-paradigm-when-designing-your-apis/#comments</comments>
		<pubDate>Fri, 07 Dec 2012 22:00:26 +0000</pubDate>
		<dc:creator>Steven Tait</dc:creator>
				<category><![CDATA[API Design & Optimization]]></category>
		<category><![CDATA[API Management]]></category>
		<category><![CDATA[Tech Talk Tuesday]]></category>

		<guid isPermaLink="false">http://www.layer7tech.com/blogs/?p=3484</guid>
		<description><![CDATA[Once again, it’s time for Tech Talk Tuesday here at Layer 7 Technologies. I’m particularly excited about this latest one, as we’ll be welcoming back Mike Amundsen, a Principal API Architect at Layer 7 and an in-demand thought leader on API design and implementation. This time around, Mike will be talking about Applying the USE [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.layer7tech.com/live/" target="_blank"><img class="alignleft size-full wp-image-3515" style="margin: 5px 10px;" title="Mike Amundsen Tech Talk" src="http://www.layer7tech.com/blogs/wp-content/uploads/2012/12/Mike-Amundsen-Tech-Talk-v2.jpg" alt="Mike Amundsen Tech Talk" width="300" height="181" /></a>Once again, it’s time for <a href="http://www.layer7tech.com/live/" target="_blank">Tech Talk Tuesday</a> here at Layer 7 Technologies. I’m particularly excited about this latest one, as we’ll be welcoming back Mike Amundsen, a Principal API Architect at Layer 7 and an in-demand thought leader on API design and implementation.</p>
<p>This time around, Mike will be talking about <a href="http://www.layer7tech.com/live/" target="_blank"><strong>Applying the USE Paradigm When Designing Your APIs</strong></a>.  The USE (Usable, Scalable, Evolvable) paradigm provides an extremely useful guide when creating high-level interfaces for your existing business objects and data storage.</p>
<p>Mike will be taking live questions on the USE paradigm and API design generally, so get ready to get involved. Tweet questions with the hashtag <a href="http://s1226.t.en25.com/e/er?s=1226&amp;lid=737&amp;elq=1f72eac4cb344b90bad058f75b9ad70b" target="_blank">#layer7live</a> or email <a href="mailto:techtalk@layer7.com" target="_blank">techtalk@layer7.com</a>. On the day, you can watch and chat live on the <a href="http://www.layer7tech.com/live/" target="_blank">Tech Talk page</a>.</p>
<p>This looks set to be a very special Tech Talk for anyone interested in API architecture and design – so don’t miss out; <a href="http://www.layer7tech.com/live/" target="_blank">join us</a> on Tuesday!</p>
]]></content:encoded>
			<wfw:commentRss>http://www.layer7tech.com/blogs/index.php/tech-talk-tuesday-applying-the-use-paradigm-when-designing-your-apis/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Use Hypermedia to Reduce Mobile Deployment Costs</title>
		<link>http://www.layer7tech.com/blogs/index.php/use-hypermedia-to-reduce-mobile-deployment-costs/</link>
		<comments>http://www.layer7tech.com/blogs/index.php/use-hypermedia-to-reduce-mobile-deployment-costs/#comments</comments>
		<pubDate>Fri, 07 Dec 2012 17:00:23 +0000</pubDate>
		<dc:creator>Mike Amundsen</dc:creator>
				<category><![CDATA[API Design & Optimization]]></category>
		<category><![CDATA[API Management]]></category>
		<category><![CDATA[Apps]]></category>
		<category><![CDATA[Hypermedia]]></category>
		<category><![CDATA[Mobile Access]]></category>

		<guid isPermaLink="false">http://www.layer7tech.com/blogs/?p=3472</guid>
		<description><![CDATA[I speak about the power and flexibility of hypermedia quite often. I explain the general idea behind hypermedia, discuss its historical roots and show how it can help client applications adapt to changes in data input and application flow. Essentially, a hypermedia-based approach aims to take key elements often placed into the client’s source code [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.amazon.com/Building-Hypermedia-APIs-HTML5-Node/dp/1449306578" target="_blank"><img class="alignleft size-full wp-image-3474" title="Using Hypermedia to Reduce Costs" src="http://www.layer7tech.com/blogs/wp-content/uploads/2012/12/using-hypermedia-to-reduce-costs-v2.jpg" alt="Using Hypermedia to Reduce Costs" width="300" height="227" /></a>I speak about the power and flexibility of <a href="http://www.amazon.com/Building-Hypermedia-APIs-HTML5-Node/dp/1449306578" target="_blank">hypermedia</a> quite often. I explain the general idea behind hypermedia, discuss its historical roots and show how it can help client applications adapt to changes in data input and application flow. Essentially, a hypermedia-based approach aims to take key elements often placed into the client’s source code and move them into the actual response messages sent by the server.</p>
<p>I also point out that using a hypermedia-based approach to building client and server applications takes a different kind of effort than using RPC-style approaches. And I explain that, currently, there is a limited amount of tooling available to support the process of designing, implementing and maintaining hypermedia-style systems.</p>
<p>If your work involves designing, building, testing and deploying a mobile client application, it is likely you need to deal with an “application store” or some other process where your packaged application must be submitted for review and approval before it is available to users for download. This can happen not only with well-known public offerings such as the Apple Store but also within any organization that provides its own application repository aimed at ensuring the safety and consistency of user-available mobile apps.</p>
<p>In an environment of quick-turnaround, agile-style implementations this “app store” approval can be a real bottleneck. It may be not just days but weeks before your app is tested, approved and posted. This can be especially frustrating when you want to deploy a rapid-fire series of enhancements in response to an engaged user community.</p>
<p>A hypermedia-based client design can often support UI, data transfer and workflow modifications by altering the server messages rather than altering the client source code. By doing this, it is possible to improve both the user experience and the system functionality without the need for re-submitting the client code for “app store” review and re-deployment. This also has the potential to reduce the need for interrupting a user’s day with download and reinstall events and can, in the process, cut down on the bandwidth costs incurred during the repeated roll outs of code modifications to a potentially large user base.</p>
<p>Improved agility, a better user experience and reduced bandwidth costs are all tangible benefits that are possible when investing in a hypermedia-based implementation for your mobile client application.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.layer7tech.com/blogs/index.php/use-hypermedia-to-reduce-mobile-deployment-costs/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Our First API Academy Videos</title>
		<link>http://www.layer7tech.com/blogs/index.php/our-first-api-academy-videos/</link>
		<comments>http://www.layer7tech.com/blogs/index.php/our-first-api-academy-videos/#comments</comments>
		<pubDate>Fri, 23 Nov 2012 23:00:37 +0000</pubDate>
		<dc:creator>Mike Amundsen</dc:creator>
				<category><![CDATA[API Academy]]></category>
		<category><![CDATA[API Design & Optimization]]></category>
		<category><![CDATA[API Management]]></category>
		<category><![CDATA[Tutorials]]></category>

		<guid isPermaLink="false">http://www.layer7tech.com/blogs/?p=3376</guid>
		<description><![CDATA[I&#8217;m happy to announce the release of the first API Academy video shorts. I&#8217;ve been working with my colleague Ronnie Mitra to create a series of short (five-minute), informative videos on topics related to the Web, APIs and solution design/implementation. These first few videos are just the start. We plan on doing more of these [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.youtube.com/playlist?list=PLNYlZno7OeO2IJ33KcDLOVKTK_jwFJmgv" target="_blank"><img class="alignleft size-full wp-image-3391" style="border: 1px solid grey; margin: 10px 5px;" title="API Academy Videos" src="http://www.layer7tech.com/blogs/wp-content/uploads/2012/11/API-Academy-Videos-v1.jpg" alt="API Academy Videos" width="300" height="222" /></a></p>
<p>I&#8217;m happy to announce the release of <a href="http://www.youtube.com/playlist?list=PLNYlZno7OeO2IJ33KcDLOVKTK_jwFJmgv" target="_blank">the first API Academy video shorts</a>. I&#8217;ve been working with my colleague <a href="http://www.layer7tech.com/blogs/index.php/author/rmitra/" target="_blank">Ronnie Mitra</a> to create a series of short (five-minute), informative videos on topics related to the Web, APIs and solution design/implementation.</p>
<p>These first few videos are just the start. We plan on doing more of these shorts on a wide range of topics, over the coming weeks and months. And we need your help. Please take a look at these first vids and send us your feedback.</p>
<p>You can comment here, on YouTube or by <a href="mailto:mamundsen@layer7tech.com" target="_blank">emailing me directly</a>. We&#8217;re looking for feedback on the format, suggested topics and even how we could improve upon this model (hosting a separate site, adding interaction, badges etc.)</p>
<p>Any time you can spend on watching these and sending comments will be most appreciated. Our aim is to do something helpful, engaging and – above all – enjoyable. Thanks for your help and let&#8217;s see what this can become!</p>
<h4><strong>The API Interaction Model – An Introduction</strong></h4>
<p><iframe width="576" height="324" src="http://www.youtube.com/embed/vINyz_lWzCQ?wmode=transparent" frameborder="0" allowFullScreen> </iframe></p>
<p><span style="color: #ffffff;">&#8212;</span></p>
<h4><strong>Three Common Web Architecture Styles</strong></h4>
<p><iframe width="576" height="324" src="http://www.youtube.com/embed/GEZaqRDLhTA?wmode=transparent" frameborder="0" allowFullScreen> </iframe></p>
<p><span style="color: #ffffff;">&#8212;</span></p>
<h4><strong>Handle Errors on the Web</strong></h4>
<p><iframe width="576" height="324" src="http://www.youtube.com/embed/NTObb3ZS1nk?wmode=transparent" frameborder="0" allowFullScreen> </iframe></p>
]]></content:encoded>
			<wfw:commentRss>http://www.layer7tech.com/blogs/index.php/our-first-api-academy-videos/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
