{"id":2645,"date":"2024-01-02T13:52:28","date_gmt":"2024-01-02T13:52:28","guid":{"rendered":"https:\/\/andylockran.dev\/?page_id=2645"},"modified":"2024-01-02T13:52:58","modified_gmt":"2024-01-02T13:52:58","slug":"open-source-projects","status":"publish","type":"page","link":"https:\/\/andylockran.dev\/index.php\/open-source-projects\/","title":{"rendered":"Open Source Projects"},"content":{"rendered":"\n<p class=\"wp-block-paragraph\">I&#8217;m a big advocate for Open Source, Open Standards, and digital freedoms.  In my spare time I try and develop solutions that either help me professionally, or more recently with an audio\/musical lens.  My background is not in low-level development, but I&#8217;m slowly working down the stack.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Spectral &#8211; AWS API Gateway Linter<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">This npm package provides a way for developers to lint their openAPI definitions according to AWS&#8217; weird implementation\/fork of 3.0.1.  It&#8217;s been a labour of love to help prevent regressions and known issues that I&#8217;ve seen with OpenAPI development against API Gateway V1 (REST).  Please open an issue or raise a question if there&#8217;s implementation bugs.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><a href=\"https:\/\/www.npmjs.com\/package\/spectral-aws-apigateway-ruleset\">https:\/\/www.npmjs.com\/package\/spectral-aws-apigateway-ruleset<\/a><\/p>\n","protected":false},"excerpt":{"rendered":"<p>I&#8217;m a big advocate for Open Source, Open Standards, and digital freedoms. In my spare time I try and develop solutions that either help me professionally, or more recently with an audio\/musical lens. My background is not in low-level development, but I&#8217;m slowly working down the stack. Spectral &#8211; AWS API Gateway Linter This npm [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"footnotes":""},"class_list":["post-2645","page","type-page","status-publish","hentry"],"jetpack-related-posts":[],"jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/andylockran.dev\/index.php\/wp-json\/wp\/v2\/pages\/2645","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/andylockran.dev\/index.php\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/andylockran.dev\/index.php\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/andylockran.dev\/index.php\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/andylockran.dev\/index.php\/wp-json\/wp\/v2\/comments?post=2645"}],"version-history":[{"count":2,"href":"https:\/\/andylockran.dev\/index.php\/wp-json\/wp\/v2\/pages\/2645\/revisions"}],"predecessor-version":[{"id":2647,"href":"https:\/\/andylockran.dev\/index.php\/wp-json\/wp\/v2\/pages\/2645\/revisions\/2647"}],"wp:attachment":[{"href":"https:\/\/andylockran.dev\/index.php\/wp-json\/wp\/v2\/media?parent=2645"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}