<?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>Design API Archives - Francesco Lelli %</title> <atom:link href="https://francescolelli.info/tag/design-api/feed/" rel="self" type="application/rss+xml" /><link>https://francescolelli.info/tag/design-api/</link> <description>Information Management, Computer Science,  Economics, Finance and more</description> <lastBuildDate>Thu, 29 Oct 2020 21:00:17 +0000</lastBuildDate> <language>en-US</language> <sy:updatePeriod> hourly </sy:updatePeriod> <sy:updateFrequency> 1 </sy:updateFrequency> <generator>https://wordpress.org/?v=6.8.5</generator><image> <url>https://francescolelli.info/wp-content/uploads/2018/11/cropped-InstrumentElement-32x32.jpg</url><title>Design API Archives - Francesco Lelli %</title><link>https://francescolelli.info/tag/design-api/</link> <width>32</width> <height>32</height> </image> <site
xmlns="com-wordpress:feed-additions:1">156264324</site> <item><title>The API Economy: Resources for Programming the Web</title><link>https://francescolelli.info/tutorial/the-api-economy-resources-for-programming-the-web/</link> <comments>https://francescolelli.info/tutorial/the-api-economy-resources-for-programming-the-web/#respond</comments> <dc:creator><![CDATA[Francesco Lelli]]></dc:creator> <pubDate>Thu, 29 Oct 2020 20:50:28 +0000</pubDate> <category><![CDATA[Economics]]></category> <category><![CDATA[Programming]]></category> <category><![CDATA[Tutorial]]></category> <category><![CDATA[Uncategorized]]></category> <category><![CDATA[API]]></category> <category><![CDATA[API Economy]]></category> <category><![CDATA[APIs]]></category> <category><![CDATA[Design API]]></category> <category><![CDATA[REST]]></category> <category><![CDATA[SDK]]></category> <category><![CDATA[SOAP]]></category> <guid
isPermaLink="false">https://francescolelli.info/?p=1654</guid><description><![CDATA[<p>The API economy is an effective way to leverage the possibility of programming the Web. The definition of this practice is relatively simple: API Economy (sometimes known as API-driven economy) simply refers to the exchange of value between consumers and providers through APIs. An application programming interface (or API) is a computing interface which defines [&#8230;]</p><p>The post <a
href="https://francescolelli.info/tutorial/the-api-economy-resources-for-programming-the-web/">The API Economy: Resources for Programming the Web</a> appeared first on <a
href="https://francescolelli.info">Francesco Lelli</a>.</p> ]]></description> <content:encoded><![CDATA[<p>The API economy is an effective way to leverage the possibility of programming the Web. The definition of this practice is relatively simple: API Economy (sometimes known as API-driven economy) simply refers to the exchange of value between consumers and providers through APIs.</p><p>An application programming interface (or <strong>API</strong>) is a computing interface which defines interactions between multiple software intermediaries. APIs in the web are literally everywhere and serve a never-ending and ever-growing set of purposes.</p><p>The plot below gives you an idea on the size of the economy and its estimated growth in the coming years. We should probably note that this estimate is pre-Covid. Therefore, I would not be surprised if the growth would be even greater.</p><figure
class="wp-block-image size-large"><img
fetchpriority="high" decoding="async" width="629" height="335" data-attachment-id="2171" data-permalink="https://francescolelli.info/tutorial/the-api-economy-resources-for-programming-the-web/attachment/api-economy-programming-the-web/" data-orig-file="https://francescolelli.info/wp-content/uploads/2020/10/api-Economy-Programming-the-Web.jpg" data-orig-size="629,335" data-comments-opened="1" data-image-meta="{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}" data-image-title="api-Economy-Programming-the-Web" data-image-description="" data-image-caption="" data-medium-file="https://francescolelli.info/wp-content/uploads/2020/10/api-Economy-Programming-the-Web-300x160.jpg" data-large-file="https://francescolelli.info/wp-content/uploads/2020/10/api-Economy-Programming-the-Web.jpg" src="https://francescolelli.info/wp-content/uploads/2020/10/api-Economy-Programming-the-Web.jpg?8011c3&amp;8011c3" alt="The API Economy and its market size: Resources for Programming the Web " class="wp-image-2171" srcset="https://francescolelli.info/wp-content/uploads/2020/10/api-Economy-Programming-the-Web.jpg 629w, https://francescolelli.info/wp-content/uploads/2020/10/api-Economy-Programming-the-Web-300x160.jpg 300w, https://francescolelli.info/wp-content/uploads/2020/10/api-Economy-Programming-the-Web-600x320.jpg 600w" sizes="(max-width: 629px) 100vw, 629px" /></figure><p>The big 4 as well as McKinsey are regularly monitoring the phenomena. Here you can see the point of view of <a
href="https://www2.deloitte.com/content/dam/Deloitte/us/Documents/financial-services/us-fsi-api-economy.pdf" target="_blank" rel="noreferrer noopener">Deloitte on the API Economy</a> in one of their recent whitepapers.</p><hr
/><p><em>The #API #Economy and its role for #programming the Web</em><br
/><a
href='https://twitter.com/intent/tweet?url=https%3A%2F%2Ffrancescolelli.info%2Ftutorial%2Fthe-api-economy-resources-for-programming-the-web%2F&#038;text=The%20%23API%20%23Economy%20and%20its%20role%20for%20%23programming%20the%20Web&#038;related' target='_blank' rel="noopener noreferrer" >Share on X</a><br
/><hr
/><p>From a technical point of view, the communication leverages the fact that machines exchange messages via the Web usually using a REST or a SOAP approach.</p><h3 class="wp-block-heading">REST/SOAP and their role in programming the Web</h3><p>Representational state transfer (in short <strong><em>ReST</em></strong>) is a software architectural style that defines a set of constraints to be used for creating Web services. Web services that conform to the REST architectural style, called RESTful Web services, provide interoperability between computer systems on the Internet. It leverages the GET/PUT/POST/DELETE of the HTTP protocol for implementing the CRUD methods that are usually used in DBs such as:</p><ul
class="wp-block-list"><li><em>CREATE </em>procedures generate new records via <em>INSERT </em>statements.</li><li><em>READ </em>procedures reads the data based on input parameters. Similarly, <em>RETRIEVE </em>procedures grab records based on input parameters.</li><li><em>UPDATE </em>procedures modify records without overwriting them.</li><li><em>DELETE </em>procedures delete where specified.</li></ul><p><em><strong>SOAP </strong></em>(abbreviation for Simple Object Access Protocol) is more flexible and is just a messaging protocol specification for exchanging structured information. It is used in the context of implementing web services in <a
href="https://francescolelli.info/tutorial/introduction-to-computer-networks-and-how-internet-works/">computer networks</a>. Its purpose is to provide extensibility, neutrality, verbosity, and independence.</p><hr
/><p><em>#REST and #SOAP play an important role in #programming the web and the #API #Economy</em><br
/><a
href='https://twitter.com/intent/tweet?url=https%3A%2F%2Ffrancescolelli.info%2Ftutorial%2Fthe-api-economy-resources-for-programming-the-web%2F&#038;text=%23REST%20and%20%23SOAP%20play%20an%20important%20role%20in%20%23programming%20the%20web%20and%20the%20%23API%20%23Economy&#038;related' target='_blank' rel="noopener noreferrer" >Share on X</a><br
/><hr
/><p>SOAP and REST are subject to a never-ending battle. Programmers and software architects tend to have a polarized view. I personally see them as two sides of the same coin. I will cover some of the aspects of the discussion in a future article. In this post, as I usually use SOAP in the lectures of SOE, I will use REST for describing how programming the web works.</p><h3 class="wp-block-heading">Programming the Web from a technical point of view</h3><p>This video summarizes the various concepts that rotate around REST as well as gives an example using data represented in JSON.</p><figure
class="wp-block-embed-youtube wp-block-embed is-type-video is-provider-youtube wp-embed-aspect-16-9 wp-has-aspect-ratio"><div
class="wp-block-embed__wrapper"> <iframe
title="REST API concepts and examples" width="800" height="450" src="https://www.youtube.com/embed/7YcW25PHnAA?feature=oembed&#038;enablejsapi=1&#038;origin=https://francescolelli.info" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" referrerpolicy="strict-origin-when-cross-origin" allowfullscreen></iframe></div></figure><p>For a good API the protocol is only the beginning and there is always need for a SDK. They practically go in tandem. A software development kit (or <strong><em>SDK </em></strong>in short) is a collection of software development tools in one installable package. They facilitate the creation of applications by having a compiler, a debugger and perhaps a software framework. They are normally specific to a hardware platform and operating system combination. In other words, they are a set tools that make the adoption of a protocol easy.</p><p>This video explains how an API and a SDK complement each other:</p><figure
class="wp-block-embed-youtube wp-block-embed is-type-video is-provider-youtube wp-embed-aspect-16-9 wp-has-aspect-ratio"><div
class="wp-block-embed__wrapper"> <iframe
title="API vs. SDK: What&#039;s the difference?" width="800" height="450" src="https://www.youtube.com/embed/kG-fLp9BTRo?feature=oembed&#038;enablejsapi=1&#038;origin=https://francescolelli.info" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" referrerpolicy="strict-origin-when-cross-origin" allowfullscreen></iframe></div></figure><hr
/><p><em>the role of #SDK in #designing a good web #API and fostering protocol adoptions</em><br
/><a
href='https://twitter.com/intent/tweet?url=https%3A%2F%2Ffrancescolelli.info%2Ftutorial%2Fthe-api-economy-resources-for-programming-the-web%2F&#038;text=the%20role%20of%20%23SDK%20in%20%23designing%20a%20good%20web%20%23API%20and%20fostering%20protocol%20adoptions&#038;related' target='_blank' rel="noopener noreferrer" >Share on X</a><br
/><hr
/><h3 class="wp-block-heading"><strong>Useful resources for navigating the API economy</strong></h3><p>Where can I find an API? You can start by searching in google &#8220;&lt;name of the company&gt; API&#8221; and you will be surprised by the astonishing amount of companies that are using this approach. However, in case you are shopping for ideas, this approach may be limiting the possibilities. A better alternative could be to familiarize with the API Economy using this set of videos from the ProgrammableWeb:</p><figure
class="wp-block-embed-youtube wp-block-embed is-type-video is-provider-youtube wp-embed-aspect-16-9 wp-has-aspect-ratio"><div
class="wp-block-embed__wrapper"> <iframe
title="APIs 101: What Exactly is an API? Part 1" width="800" height="450" src="https://www.youtube.com/embed/cpRcK4GS068?list=PLcgRuP1JhcBP8Kh0MC53GH_pxqfOhTVLa" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" referrerpolicy="strict-origin-when-cross-origin" allowfullscreen></iframe></div></figure><p>You could also browse catalogs that are available in the Internet, such as:</p><ul
class="wp-block-list"><li><a
href="https://any-api.com/">https://any-api.com/</a> Collection of APIs and tools for using them.</li><li><a
href="https://www.programmableweb.com/category/all/apis">https://www.programmableweb.com/category/all/apis</a> A &#8220;historical&#8221; initiative that intends to list all possible APIs that are available in the web.</li><li><a
href="https://apilist.fun/interviews ">https://apilist.fun/interviews</a> APIs can be also a fun endeavor!</li></ul><hr
/><p><em>Useful #resources for navigating the #API #Economy and discover new services</em><br
/><a
href='https://twitter.com/intent/tweet?url=https%3A%2F%2Ffrancescolelli.info%2Ftutorial%2Fthe-api-economy-resources-for-programming-the-web%2F&#038;text=Useful%20%23resources%20for%20navigating%20the%20%23API%20%23Economy%20and%20discover%20new%20services&#038;related' target='_blank' rel="noopener noreferrer" >Share on X</a><br
/><hr
/><p>The post <a
href="https://francescolelli.info/tutorial/the-api-economy-resources-for-programming-the-web/">The API Economy: Resources for Programming the Web</a> appeared first on <a
href="https://francescolelli.info">Francesco Lelli</a>.</p> ]]></content:encoded> <wfw:commentRss>https://francescolelli.info/tutorial/the-api-economy-resources-for-programming-the-web/feed/</wfw:commentRss> <slash:comments>0</slash:comments> <post-id
xmlns="com-wordpress:feed-additions:1">1654</post-id> </item> <item><title>How to Design a Good API: Advanced Object Oriented Programming</title><link>https://francescolelli.info/programming/how-to-design-a-good-api-advanced-object-oriented-programming/</link> <comments>https://francescolelli.info/programming/how-to-design-a-good-api-advanced-object-oriented-programming/#respond</comments> <dc:creator><![CDATA[Francesco Lelli]]></dc:creator> <pubDate>Mon, 12 Aug 2019 12:24:51 +0000</pubDate> <category><![CDATA[Java]]></category> <category><![CDATA[Programming]]></category> <category><![CDATA[Python]]></category> <category><![CDATA[APIs]]></category> <category><![CDATA[Design API]]></category> <category><![CDATA[Good API]]></category> <category><![CDATA[Google talk]]></category> <guid
isPermaLink="false">https://francescolelli.info/?p=1635</guid><description><![CDATA[<p>Design a good API takes both engineering and artistic skills and is a well know challenge among experts of object oriented programming (OOP). This is a relatively advanced topic. Therefore, If you are unfamiliar with the concepts this article will give you the basic of OOP. An Application Program Interface (API in short) refers to [&#8230;]</p><p>The post <a
href="https://francescolelli.info/programming/how-to-design-a-good-api-advanced-object-oriented-programming/">How to Design a Good API: Advanced Object Oriented Programming</a> appeared first on <a
href="https://francescolelli.info">Francesco Lelli</a>.</p> ]]></description> <content:encoded><![CDATA[<p>Design a good API takes both engineering and artistic skills and is a well know challenge among experts of object oriented programming (OOP). This is a relatively advanced topic. Therefore, If you are unfamiliar with the concepts this article will give you the<a
href="https://francescolelli.info/tutorial/object-oriented-programming-a-curated-set-of-resources/"> basic of OOP</a>.</p><div
class="wp-block-image"><figure
class="alignright is-resized"><img
decoding="async" data-attachment-id="1637" data-permalink="https://francescolelli.info/programming/how-to-design-a-good-api-advanced-object-oriented-programming/attachment/design-a-good-api/" data-orig-file="https://francescolelli.info/wp-content/uploads/2019/08/Design-a-good-api.jpg" data-orig-size="480,343" data-comments-opened="1" data-image-meta="{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}" data-image-title="Design-a-good-api" data-image-description="" data-image-caption="" data-medium-file="https://francescolelli.info/wp-content/uploads/2019/08/Design-a-good-api-300x214.jpg" data-large-file="https://francescolelli.info/wp-content/uploads/2019/08/Design-a-good-api.jpg" src="https://francescolelli.info/wp-content/uploads/2019/08/Design-a-good-api.jpg?8011c3&amp;8011c3" alt="How to Design a Good API: Advanced Object Oriented Programming" class="wp-image-1637" width="276" height="197" srcset="https://francescolelli.info/wp-content/uploads/2019/08/Design-a-good-api.jpg 480w, https://francescolelli.info/wp-content/uploads/2019/08/Design-a-good-api-300x214.jpg 300w" sizes="(max-width: 276px) 100vw, 276px" /><figcaption>Design a Good API</figcaption></figure></div><p>An Application Program Interface (API in short) refers to a set of functions and procedures allowing the creation of applications that access the features or data of an operating system, application, or other service.</p><p>A good API should be:</p><ul
class="wp-block-list"><li><strong>Easy to learn and use</strong>. It should not intuitive enough to that the documentation would not be needed for the majority of the cases.</li><li><strong>Hard to misuse</strong>. At the same time an API should be designed in a way that prevent misuse of the code.  in other words it should force you to do &#8220;the right thing&#8221;</li><li><strong>Easy to read and maintain code that uses it</strong>. As the API will change over time you would like to minimize the changes that users will have to do/</li><li><strong>Sufficiently powerful</strong>. It should be able to satisfy the requirements of your users and mask the complexity behind. In other words the users should be able to solve their needs without knowing all the details of how the system works.</li><li><strong>Easy to evolve.</strong> As requirements will change over time the API should accommodate these changes without causing major disruptions in the code that is wrapping as well as in how the users are using it.</li><li><strong>Targeted to the appropriate audience.</strong> As different groups of people use different terminologies the API should take into account these aspects. In other words, what is good for a physicist may not be good for an economist.</li></ul><p>This google tech talk share some insight on the process and the best practices around the design of a good API.</p><figure
class="wp-block-embed-youtube wp-block-embed is-type-video is-provider-youtube wp-embed-aspect-4-3 wp-has-aspect-ratio"><div
class="wp-block-embed__wrapper"> <iframe
title="How To Design A Good API and Why it Matters" width="800" height="600" src="https://www.youtube.com/embed/heh4OeB9A-c?feature=oembed&#038;enablejsapi=1&#038;origin=https://francescolelli.info" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" referrerpolicy="strict-origin-when-cross-origin" allowfullscreen></iframe></div><figcaption>How to Design a Good API</figcaption></figure><p>Joshua Bloch has an extensive experience in this matter and show how good APIs increase the pleasure and productivity of the developers who use them, the quality of the software they produce, and ultimately, the corporate bottom line.</p><hr
/><p><em> How to #design a good #API : #advancedpractice in Object Oriented #programming. Practical examples in #Java but with #python works as well. #softwaredevelopment #SoftwareEngineer </em><br
/><a
href='https://twitter.com/intent/tweet?url=https%3A%2F%2Ffrancescolelli.info%2Fprogramming%2Fhow-to-design-a-good-api-advanced-object-oriented-programming%2F&#038;text=%20How%20to%20%23design%20a%20good%20%23API%20%3A%20%23advancedpractice%20in%20Object%20Oriented%20%23programming.%20Practical%20examples%20in%20%23Java%20but%20with%20%23python%20works%20as%20well.%20%23softwaredevelopment%20%23SoftwareEngineer%20&#038;related' target='_blank' rel="noopener noreferrer" >Share on X</a><br
/><hr
/><p>The post <a
href="https://francescolelli.info/programming/how-to-design-a-good-api-advanced-object-oriented-programming/">How to Design a Good API: Advanced Object Oriented Programming</a> appeared first on <a
href="https://francescolelli.info">Francesco Lelli</a>.</p> ]]></content:encoded> <wfw:commentRss>https://francescolelli.info/programming/how-to-design-a-good-api-advanced-object-oriented-programming/feed/</wfw:commentRss> <slash:comments>0</slash:comments> <post-id
xmlns="com-wordpress:feed-additions:1">1635</post-id> </item> </channel> </rss>