{"id":7584,"date":"2004-06-17T05:25:29","date_gmt":"2004-06-17T03:25:29","guid":{"rendered":"https:\/\/mamchenkov.net\/wordpress\/2004\/06\/17\/how-microsoft-lost-the-api-war\/"},"modified":"-0001-11-30T00:00:00","modified_gmt":"-0001-11-29T22:00:00","slug":"how-microsoft-lost-the-api-war","status":"publish","type":"post","link":"https:\/\/mamchenkov.net\/wordpress\/2004\/06\/17\/how-microsoft-lost-the-api-war\/","title":{"rendered":"How Microsoft Lost the API War"},"content":{"rendered":"<!-- google_ad_section_start -->\n<p>\t<img decoding=\"async\" class=\"alignleft\" src=\"\/wordpress\/wp-content\/20040525-slashdot.gif\" alt=\"\"><\/p>\n<p><a title=\"Slashdot front page\" href=\"http:\/\/slashdot.org\">Slashdot<\/a> has an <a title=\"Slashdot post\" href=\"http:\/\/developers.slashdot.org\/article.pl?sid=04\/06\/16\/209202&#038;mode=nested&#038;tid=109&#038;tid=126&#038;tid=156&#038;tid=185&#038;tid=187&#038;tid=190\">excellent post<\/a> today linking to the article by Joel Spolsky &#8211; &#8220;<a title=\"Actual article\" href=\"http:\/\/www.joelonsoftware.com\/articles\/APIWar.html\">How Microsoft Lost the API War<\/a>&#8220;.<\/p>\n<p>It&#8217;s somewhat lengthy but is worth a read.  Trust me. :)<\/p>\n<!-- google_ad_section_end -->\n","protected":false},"excerpt":{"rendered":"<!-- google_ad_section_start -->\n<p>Slashdot has an excellent post today linking to the article by Joel Spolsky &#8211; &#8220;How Microsoft Lost the API War&#8220;. It&#8217;s somewhat lengthy but is worth a read. Trust me. :)<\/p>\n<!-- google_ad_section_end -->\n","protected":false},"author":2,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_monsterinsights_skip_tracking":false,"_monsterinsights_sitenote_active":false,"_monsterinsights_sitenote_note":"","_monsterinsights_sitenote_category":0,"_jetpack_memberships_contains_paid_content":false,"footnotes":"","jetpack_publicize_message":"","jetpack_publicize_feature_enabled":true,"jetpack_social_post_already_shared":false,"jetpack_social_options":{"image_generator_settings":{"template":"highway","default_image_id":0,"font":"","enabled":false},"version":2},"_links_to":"","_links_to_target":""},"categories":[1,62],"tags":[],"keyring_services":[],"class_list":["post-7584","post","type-post","status-publish","format-standard","hentry","category-general","category-technology"],"aioseo_notices":[],"jetpack_publicize_connections":[],"jetpack_featured_media_url":"","jetpack-related-posts":[{"id":14849,"url":"https:\/\/mamchenkov.net\/wordpress\/2011\/05\/10\/day-in-brief\/","url_meta":{"origin":7584,"position":0},"title":"Day in brief","author":"Leonid Mamchenkov","date":"May 10, 2011","format":false,"excerpt":"GitHub: mamchenkov created repository SafeCharge-API http:\/\/bit.ly\/kO8xqh # GitHub: mamchenkov created branch master at mamchenkov\/SafeCharge-API http:\/\/bit.ly\/kpkX7l # GitHub: mamchenkov started watching apache\/log4php http:\/\/bit.ly\/jN2aMF # Shared: Microsoft Buying Skype for $8.5B http:\/\/bit.ly\/igSFMu #","rel":"","context":"In &quot;All&quot;","block_context":{"text":"All","link":"https:\/\/mamchenkov.net\/wordpress\/category\/general\/"},"img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]},{"id":28562,"url":"https:\/\/mamchenkov.net\/wordpress\/2018\/05\/08\/database-flow-modern-self-hosted-web-interface-for-sql-and-graphql\/","url_meta":{"origin":7584,"position":1},"title":"Database Flow &#8211; modern, self-hosted web interface for SQL and GraphQL","author":"Leonid Mamchenkov","date":"May 8, 2018","format":false,"excerpt":"Database Flow is a modern, Open Source, self-hosted, web-based tool for working with SQL databases and GraphQL APIs.\u00a0 It supports a variety of the database engines: IBM DB2, Oracle, H2, PostgreSQL, MySQL, SQLite, Informix, and Microsoft SQL Server.\u00a0 It features an advanced SQL editor, query plan analyzer, GraphQL client, schema\u2026","rel":"","context":"In &quot;All&quot;","block_context":{"text":"All","link":"https:\/\/mamchenkov.net\/wordpress\/category\/general\/"},"img":{"alt_text":"","src":"https:\/\/i0.wp.com\/mamchenkov.net\/wordpress\/wp-content\/uploads\/2018\/05\/database-flow-500x281.png?resize=350%2C200&ssl=1","width":350,"height":200},"classes":[]},{"id":23194,"url":"https:\/\/mamchenkov.net\/wordpress\/2014\/12\/22\/http-api-design-guide\/","url_meta":{"origin":7584,"position":2},"title":"HTTP API Design Guide","author":"Leonid Mamchenkov","date":"December 22, 2014","format":"link","excerpt":"HTTP API Design Guide This guide describes a set of HTTP+JSON API design practices, originally extracted from work on the Heroku Platform API. This guide informs additions to that API and also guides new internal APIs at Heroku. We hope it\u2019s also of interest to API designers outside of Heroku.\u2026","rel":"","context":"In &quot;All&quot;","block_context":{"text":"All","link":"https:\/\/mamchenkov.net\/wordpress\/category\/general\/"},"img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]},{"id":29051,"url":"https:\/\/mamchenkov.net\/wordpress\/2018\/12\/07\/12-best-api-monitoring-tools-for-your-business\/","url_meta":{"origin":7584,"position":3},"title":"12 Best API Monitoring Tools for Your Business","author":"Leonid Mamchenkov","date":"December 7, 2018","format":false,"excerpt":"\"12 Best API Monitoring Tools for Your Business\" lists a bunch of services that are useful for the monitoring of your API.\u00a0 Read the whole thing for more details.\u00a0 Here's the list of the services covered: Amazon CloudWatchRigorUptrendsAssertibleBlazeMeterAppDynamicsNew RelicAPI FortressTraceviewRapidSpikeAgilityWorksAPI Science","rel":"","context":"In &quot;All&quot;","block_context":{"text":"All","link":"https:\/\/mamchenkov.net\/wordpress\/category\/general\/"},"img":{"alt_text":"","src":"https:\/\/i0.wp.com\/mamchenkov.net\/wordpress\/wp-content\/uploads\/2018\/12\/api.png?resize=350%2C200&ssl=1","width":350,"height":200,"srcset":"https:\/\/i0.wp.com\/mamchenkov.net\/wordpress\/wp-content\/uploads\/2018\/12\/api.png?resize=350%2C200&ssl=1 1x, https:\/\/i0.wp.com\/mamchenkov.net\/wordpress\/wp-content\/uploads\/2018\/12\/api.png?resize=525%2C300&ssl=1 1.5x"},"classes":[]},{"id":23272,"url":"https:\/\/mamchenkov.net\/wordpress\/2015\/01\/07\/postgrest-rest-api-for-any-postgres-database\/","url_meta":{"origin":7584,"position":4},"title":"PostgREST &#8211; REST API for any Postgres database","author":"Leonid Mamchenkov","date":"January 7, 2015","format":"link","excerpt":"PostgREST - REST API for any Postgres database","rel":"","context":"In &quot;All&quot;","block_context":{"text":"All","link":"https:\/\/mamchenkov.net\/wordpress\/category\/general\/"},"img":{"alt_text":"logo","src":"https:\/\/i0.wp.com\/mamchenkov.net\/wordpress\/wp-content\/uploads\/2015\/01\/logo-500x108.png?resize=350%2C200&ssl=1","width":350,"height":200},"classes":[]},{"id":26070,"url":"https:\/\/mamchenkov.net\/wordpress\/2016\/04\/26\/best-practices-for-designing-a-pragmatic-restful-api\/","url_meta":{"origin":7584,"position":5},"title":"Best Practices for Designing a Pragmatic RESTful API","author":"Leonid Mamchenkov","date":"April 26, 2016","format":false,"excerpt":"An API is a user interface for developers. Put the effort in to ensure it's not just functional but pleasant to use. Vinay Sahni has a rather lengthy, detailed, and well-rounded post on how to design a good RESTful API. \u00a0It covers pretty much everything from URL structures and parameters,\u2026","rel":"","context":"In &quot;All&quot;","block_context":{"text":"All","link":"https:\/\/mamchenkov.net\/wordpress\/category\/general\/"},"img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]}],"jetpack_sharing_enabled":true,"amp_enabled":true,"_links":{"self":[{"href":"https:\/\/mamchenkov.net\/wordpress\/wp-json\/wp\/v2\/posts\/7584","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/mamchenkov.net\/wordpress\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/mamchenkov.net\/wordpress\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/mamchenkov.net\/wordpress\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/mamchenkov.net\/wordpress\/wp-json\/wp\/v2\/comments?post=7584"}],"version-history":[{"count":0,"href":"https:\/\/mamchenkov.net\/wordpress\/wp-json\/wp\/v2\/posts\/7584\/revisions"}],"wp:attachment":[{"href":"https:\/\/mamchenkov.net\/wordpress\/wp-json\/wp\/v2\/media?parent=7584"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/mamchenkov.net\/wordpress\/wp-json\/wp\/v2\/categories?post=7584"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/mamchenkov.net\/wordpress\/wp-json\/wp\/v2\/tags?post=7584"},{"taxonomy":"keyring_services","embeddable":true,"href":"https:\/\/mamchenkov.net\/wordpress\/wp-json\/wp\/v2\/keyring_services?post=7584"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}