SlideShare ist ein Scribd-Unternehmen logo
1 von 21
GET /integration HTTP/1.1
HTTP/1.1 200 OK
Content-Type: application/json
{
"what": "Integration Time!",
"how": "Node.js + Express + Fetch"
}
What we have
• A fluffy webshop
• 8 purchasable, adorable, fluffy animals
• Mocked purchase flow
TODO
TODO: Retrieve Access Token
19cdefee34ef11e7a29910ddb19ceb461f78f51034ef11
TODO: Add JavaScript
<script src="https://…/payex-checkout.js">
</script>
TODO: Disable Purchase Button
<button type="submit">Buy me!</button>
TODO: Disable Purchase Button
<button type="submit" disabled>Buy me!</button>
TODO: Retrieve POST URL
GET /psp/checkout HTTP/1.1
Authorization: Bearer efee34ef79…461f78f51034ef11
Host: api.payex.com
{
"authorized": true,
"paymentSession": "https://…/…/payment-sessions",
}
TODO: Retrieve POST URL
GET /psp/checkout HTTP/1.1
Authorization: Bearer efee34ef79…461f78f51034ef11
Host: api.payex.com
{
"authorized": true,
"paymentSession": "https://…/…/payment-sessions",
}
TODO: Perform HTTP POST request
POST /psp/checkout/payment-sessions HTTP/1.1
Authorization: Bearer efee34ef79…461f78f51034ef11
Host: api.payex.com
{
"amount": 199.50,
"vatAmount": 199.50,
"currency": "NOK",
"callbackUrl": "https://merchant.api/callback",
"reference": "order-1234",
"culture": "en-US",
"fees": {
"invoice": {
"amount": 199.50,
"vatAmount": 199.50,
"description": "Sending dead trees is expensive, yo!",
}
}
}
TODO: Retrieve ID URL
HTTP/1.1 201 Created
{
"id": "https://api.payex.com/…/payment-sessions/8fe1c93",
"amount": 199.50,
"vatAmount": 199.50,
"currency": "NOK",
"callbackUrl": "https://merchant.api/callback",
"reference": "order-1234",
"culture": "en-US",
"fees": {
"invoice": {
"amount": 199.50,
"vatAmount": 199.50,
"description": "Sending dead trees is expensive, yo!",
}
}
}
TODO: Retrieve ID URL
HTTP/1.1 201 Created
{
"id": "https://api.payex.com/…/payment-sessions/8fe1c93",
"amount": 199.50,
"vatAmount": 199.50,
"currency": "NOK",
"callbackUrl": "https://merchant.api/callback",
"reference": "order-1234",
"culture": "en-US",
"fees": {
"invoice": {
"amount": 199.50,
"vatAmount": 199.50,
"description": "Sending dead trees is expensive, yo!",
}
}
}
TODO: Add ID URL to Purchase Button
<button type="submit"
disabled>Buy me!</button>
TODO: Add ID URL to Purchase Button
<button type="submit"
data-payex-checkout="https://…/payment-sessions/8fe1c93"
disabled>Buy me!</button>
TODO: Retrieve Payment URL
GET https://…/…/payment-sessions/8fe1c93 HTTP/1.1
Authorization: Bearer efee34ef79…461f78f51034ef11
Host: api.payex.com
{
"id": "https://…/…/payment-sessions/8fe1c93",
"amount": 199.50,
"vatAmount": 199.50,
︙
"payment": "https://…/…/payments/f57eb662",
}
TODO: Retrieve Payment URL
GET https://…/…/payment-sessions/8fe1c93 HTTP/1.1
Authorization: Bearer efee34ef79…461f78f51034ef11
Host: api.payex.com
{
"id": "https://…/…/payment-sessions/8fe1c93",
"amount": 199.50,
"vatAmount": 199.50,
︙
"payment": "https://…/…/payments/f57eb662",
}
TODO: Retrieve Capture Operation
GET https://…/…/payments/f57eb662 HTTP/1.1
Authorization: Bearer efee34ef79…461f78f51034ef11
Host: api.payex.com
{
"id": "https://…/…/payments/f57eb662",
︙
"operations": [{
"rel": "create-checkout-capture",
"href": " https://…/…/f57eb662/captures",
"method": "POST",
}]
}
TODO: Retrieve Capture Operation
GET https://…/…/payments/f57eb662 HTTP/1.1
Authorization: Bearer efee34ef79…461f78f51034ef11
Host: api.payex.com
{
"id": "https://…/…/payments/f57eb662",
︙
"operations": [{
"rel": "create-checkout-capture",
"href": " https://…/…/f57eb662/captures",
"method": "POST",
}]
}
TODO: Capture the payment
POST /…/payment-sessions/f57eb662/captures HTTP/1.1
Authorization: Bearer efee34ef79…461f78f51034ef11
Host: api.payex.com
{
"transaction": {
"description": "Show me the money!"
}
}
Demo
Time!
Et voilà!
- @asbjornu
- asbjorn.ulsberg@payex.com
- slack.httpapis.com
Asbjørn Ulsberg

Weitere ähnliche Inhalte

Was ist angesagt?

Ruby conf 2011, Create your own rails framework
Ruby conf 2011, Create your own rails frameworkRuby conf 2011, Create your own rails framework
Ruby conf 2011, Create your own rails framework
Pankaj Bhageria
 

Was ist angesagt? (10)

BDD / cucumber /Capybara
BDD / cucumber /CapybaraBDD / cucumber /Capybara
BDD / cucumber /Capybara
 
Save Time By Manging WordPress from the Command Line
Save Time By Manging WordPress from the Command LineSave Time By Manging WordPress from the Command Line
Save Time By Manging WordPress from the Command Line
 
Web Automation Testing Using Selenium
Web Automation Testing Using SeleniumWeb Automation Testing Using Selenium
Web Automation Testing Using Selenium
 
Teaming up WordPress API with Backbone.js in Titanium
Teaming up WordPress API with Backbone.js in TitaniumTeaming up WordPress API with Backbone.js in Titanium
Teaming up WordPress API with Backbone.js in Titanium
 
php tutorial - By Bally Chohan
php tutorial - By Bally Chohanphp tutorial - By Bally Chohan
php tutorial - By Bally Chohan
 
WordPress
WordPressWordPress
WordPress
 
Integrating External APIs with WordPress
Integrating External APIs with WordPressIntegrating External APIs with WordPress
Integrating External APIs with WordPress
 
9. lower in Symfony 4
9. lower in Symfony 49. lower in Symfony 4
9. lower in Symfony 4
 
WordCamp Nashville 2015 From Zero to WordPress Publish (Beginner's WordPress)
WordCamp Nashville 2015 From Zero to WordPress Publish (Beginner's WordPress)WordCamp Nashville 2015 From Zero to WordPress Publish (Beginner's WordPress)
WordCamp Nashville 2015 From Zero to WordPress Publish (Beginner's WordPress)
 
Ruby conf 2011, Create your own rails framework
Ruby conf 2011, Create your own rails frameworkRuby conf 2011, Create your own rails framework
Ruby conf 2011, Create your own rails framework
 

Mehr von Nordic APIs

The Federated Future: Pioneering Next-Gen Solutions in API Management - Marku...
The Federated Future: Pioneering Next-Gen Solutions in API Management - Marku...The Federated Future: Pioneering Next-Gen Solutions in API Management - Marku...
The Federated Future: Pioneering Next-Gen Solutions in API Management - Marku...
Nordic APIs
 
Inclusive, Accessible Tech: Bias-Free Language in Code and Configurations - A...
Inclusive, Accessible Tech: Bias-Free Language in Code and Configurations - A...Inclusive, Accessible Tech: Bias-Free Language in Code and Configurations - A...
Inclusive, Accessible Tech: Bias-Free Language in Code and Configurations - A...
Nordic APIs
 

Mehr von Nordic APIs (20)

How I Built Bill, the AI-Powered Chatbot That Reads Our Docs for Fun , by Tod...
How I Built Bill, the AI-Powered Chatbot That Reads Our Docs for Fun , by Tod...How I Built Bill, the AI-Powered Chatbot That Reads Our Docs for Fun , by Tod...
How I Built Bill, the AI-Powered Chatbot That Reads Our Docs for Fun , by Tod...
 
The Art of API Design, by David Biesack at Apiture
The Art of API Design, by David Biesack at ApitureThe Art of API Design, by David Biesack at Apiture
The Art of API Design, by David Biesack at Apiture
 
ABAC, ReBAC, Zanzibar, ALFA… How Should I Implement AuthZ in My APIs? by Dav...
ABAC, ReBAC, Zanzibar, ALFA…  How Should I Implement AuthZ in My APIs? by Dav...ABAC, ReBAC, Zanzibar, ALFA…  How Should I Implement AuthZ in My APIs? by Dav...
ABAC, ReBAC, Zanzibar, ALFA… How Should I Implement AuthZ in My APIs? by Dav...
 
Crafting a Cloud Native API Platform to Accelerate Your Platform Maturity - B...
Crafting a Cloud Native API Platform to Accelerate Your Platform Maturity - B...Crafting a Cloud Native API Platform to Accelerate Your Platform Maturity - B...
Crafting a Cloud Native API Platform to Accelerate Your Platform Maturity - B...
 
The Federated Future: Pioneering Next-Gen Solutions in API Management - Marku...
The Federated Future: Pioneering Next-Gen Solutions in API Management - Marku...The Federated Future: Pioneering Next-Gen Solutions in API Management - Marku...
The Federated Future: Pioneering Next-Gen Solutions in API Management - Marku...
 
API Authorization Using an Identity Server and Gateway - Aldo Pietropaolo, SGNL
API Authorization Using an Identity Server and Gateway - Aldo Pietropaolo, SGNLAPI Authorization Using an Identity Server and Gateway - Aldo Pietropaolo, SGNL
API Authorization Using an Identity Server and Gateway - Aldo Pietropaolo, SGNL
 
API Discovery from Crawl to Run - Rob Dickinson, Graylog
API Discovery from Crawl to Run - Rob Dickinson, GraylogAPI Discovery from Crawl to Run - Rob Dickinson, Graylog
API Discovery from Crawl to Run - Rob Dickinson, Graylog
 
Productizing and Monetizing APIs - Derric Gilling, Moseif
Productizing and Monetizing APIs - Derric Gilling, MoseifProductizing and Monetizing APIs - Derric Gilling, Moseif
Productizing and Monetizing APIs - Derric Gilling, Moseif
 
Securely Boosting Any Product with Generative AI APIs - Ruben Sitbon, Sipios
Securely Boosting Any Product with Generative AI APIs - Ruben Sitbon, SipiosSecurely Boosting Any Product with Generative AI APIs - Ruben Sitbon, Sipios
Securely Boosting Any Product with Generative AI APIs - Ruben Sitbon, Sipios
 
Security of LLM APIs by Ankita Gupta, Akto.io
Security of LLM APIs by Ankita Gupta, Akto.ioSecurity of LLM APIs by Ankita Gupta, Akto.io
Security of LLM APIs by Ankita Gupta, Akto.io
 
I'm an API Hacker, Here's How to Go from Making APIs to Breaking Them - Katie...
I'm an API Hacker, Here's How to Go from Making APIs to Breaking Them - Katie...I'm an API Hacker, Here's How to Go from Making APIs to Breaking Them - Katie...
I'm an API Hacker, Here's How to Go from Making APIs to Breaking Them - Katie...
 
Unleashing the Potential of GraphQL with Streaming Data - Kishore Banala, Net...
Unleashing the Potential of GraphQL with Streaming Data - Kishore Banala, Net...Unleashing the Potential of GraphQL with Streaming Data - Kishore Banala, Net...
Unleashing the Potential of GraphQL with Streaming Data - Kishore Banala, Net...
 
Reigniting the API Description Wars with TypeSpec and the Next Generation of ...
Reigniting the API Description Wars with TypeSpec and the Next Generation of...Reigniting the API Description Wars with TypeSpec and the Next Generation of...
Reigniting the API Description Wars with TypeSpec and the Next Generation of ...
 
Establish, Grow, and Mature Your API Platform - James Higginbotham, LaunchAny
Establish, Grow, and Mature Your API Platform - James Higginbotham, LaunchAnyEstablish, Grow, and Mature Your API Platform - James Higginbotham, LaunchAny
Establish, Grow, and Mature Your API Platform - James Higginbotham, LaunchAny
 
Inclusive, Accessible Tech: Bias-Free Language in Code and Configurations - A...
Inclusive, Accessible Tech: Bias-Free Language in Code and Configurations - A...Inclusive, Accessible Tech: Bias-Free Language in Code and Configurations - A...
Inclusive, Accessible Tech: Bias-Free Language in Code and Configurations - A...
 
Going Platinum: How to Make a Hit API by Bill Doerrfeld, Nordic APIs
Going Platinum: How to Make a Hit API by Bill Doerrfeld, Nordic APIsGoing Platinum: How to Make a Hit API by Bill Doerrfeld, Nordic APIs
Going Platinum: How to Make a Hit API by Bill Doerrfeld, Nordic APIs
 
Getting Better at Risk Management Using Event Driven Mesh Architecture - Ragh...
Getting Better at Risk Management Using Event Driven Mesh Architecture - Ragh...Getting Better at Risk Management Using Event Driven Mesh Architecture - Ragh...
Getting Better at Risk Management Using Event Driven Mesh Architecture - Ragh...
 
GenAI: Producing and Consuming APIs by Paul Dumas, Gartner
GenAI: Producing and Consuming APIs by Paul Dumas, GartnerGenAI: Producing and Consuming APIs by Paul Dumas, Gartner
GenAI: Producing and Consuming APIs by Paul Dumas, Gartner
 
The SAS developer portal – developer.sas.com 2.0: How we built it by Joe Furb...
The SAS developer portal –developer.sas.com 2.0: How we built it by Joe Furb...The SAS developer portal –developer.sas.com 2.0: How we built it by Joe Furb...
The SAS developer portal – developer.sas.com 2.0: How we built it by Joe Furb...
 
How Netflix Uses Data Abstraction to Operate Services at Scale - Vidhya Arvin...
How Netflix Uses Data Abstraction to Operate Services at Scale - Vidhya Arvin...How Netflix Uses Data Abstraction to Operate Services at Scale - Vidhya Arvin...
How Netflix Uses Data Abstraction to Operate Services at Scale - Vidhya Arvin...
 

Kürzlich hochgeladen

Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slide
vu2urc
 

Kürzlich hochgeladen (20)

From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
 
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivity
 
What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?
 
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
 
Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...
 
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
 
Real Time Object Detection Using Open CV
Real Time Object Detection Using Open CVReal Time Object Detection Using Open CV
Real Time Object Detection Using Open CV
 
Developing An App To Navigate The Roads of Brazil
Developing An App To Navigate The Roads of BrazilDeveloping An App To Navigate The Roads of Brazil
Developing An App To Navigate The Roads of Brazil
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘
 
Advantages of Hiring UIUX Design Service Providers for Your Business
Advantages of Hiring UIUX Design Service Providers for Your BusinessAdvantages of Hiring UIUX Design Service Providers for Your Business
Advantages of Hiring UIUX Design Service Providers for Your Business
 
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data DiscoveryTrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
 
Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)
 
GenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdfGenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdf
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed texts
 
Tech Trends Report 2024 Future Today Institute.pdf
Tech Trends Report 2024 Future Today Institute.pdfTech Trends Report 2024 Future Today Institute.pdf
Tech Trends Report 2024 Future Today Institute.pdf
 
Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slide
 
Strategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherStrategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a Fresher
 
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
 
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdfUnderstanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
 

PayEx Demo – Integration time

  • 1. GET /integration HTTP/1.1 HTTP/1.1 200 OK Content-Type: application/json { "what": "Integration Time!", "how": "Node.js + Express + Fetch" }
  • 2. What we have • A fluffy webshop • 8 purchasable, adorable, fluffy animals • Mocked purchase flow
  • 4. TODO: Retrieve Access Token 19cdefee34ef11e7a29910ddb19ceb461f78f51034ef11
  • 5. TODO: Add JavaScript <script src="https://…/payex-checkout.js"> </script>
  • 6. TODO: Disable Purchase Button <button type="submit">Buy me!</button>
  • 7. TODO: Disable Purchase Button <button type="submit" disabled>Buy me!</button>
  • 8. TODO: Retrieve POST URL GET /psp/checkout HTTP/1.1 Authorization: Bearer efee34ef79…461f78f51034ef11 Host: api.payex.com { "authorized": true, "paymentSession": "https://…/…/payment-sessions", }
  • 9. TODO: Retrieve POST URL GET /psp/checkout HTTP/1.1 Authorization: Bearer efee34ef79…461f78f51034ef11 Host: api.payex.com { "authorized": true, "paymentSession": "https://…/…/payment-sessions", }
  • 10. TODO: Perform HTTP POST request POST /psp/checkout/payment-sessions HTTP/1.1 Authorization: Bearer efee34ef79…461f78f51034ef11 Host: api.payex.com { "amount": 199.50, "vatAmount": 199.50, "currency": "NOK", "callbackUrl": "https://merchant.api/callback", "reference": "order-1234", "culture": "en-US", "fees": { "invoice": { "amount": 199.50, "vatAmount": 199.50, "description": "Sending dead trees is expensive, yo!", } } }
  • 11. TODO: Retrieve ID URL HTTP/1.1 201 Created { "id": "https://api.payex.com/…/payment-sessions/8fe1c93", "amount": 199.50, "vatAmount": 199.50, "currency": "NOK", "callbackUrl": "https://merchant.api/callback", "reference": "order-1234", "culture": "en-US", "fees": { "invoice": { "amount": 199.50, "vatAmount": 199.50, "description": "Sending dead trees is expensive, yo!", } } }
  • 12. TODO: Retrieve ID URL HTTP/1.1 201 Created { "id": "https://api.payex.com/…/payment-sessions/8fe1c93", "amount": 199.50, "vatAmount": 199.50, "currency": "NOK", "callbackUrl": "https://merchant.api/callback", "reference": "order-1234", "culture": "en-US", "fees": { "invoice": { "amount": 199.50, "vatAmount": 199.50, "description": "Sending dead trees is expensive, yo!", } } }
  • 13. TODO: Add ID URL to Purchase Button <button type="submit" disabled>Buy me!</button>
  • 14. TODO: Add ID URL to Purchase Button <button type="submit" data-payex-checkout="https://…/payment-sessions/8fe1c93" disabled>Buy me!</button>
  • 15. TODO: Retrieve Payment URL GET https://…/…/payment-sessions/8fe1c93 HTTP/1.1 Authorization: Bearer efee34ef79…461f78f51034ef11 Host: api.payex.com { "id": "https://…/…/payment-sessions/8fe1c93", "amount": 199.50, "vatAmount": 199.50, ︙ "payment": "https://…/…/payments/f57eb662", }
  • 16. TODO: Retrieve Payment URL GET https://…/…/payment-sessions/8fe1c93 HTTP/1.1 Authorization: Bearer efee34ef79…461f78f51034ef11 Host: api.payex.com { "id": "https://…/…/payment-sessions/8fe1c93", "amount": 199.50, "vatAmount": 199.50, ︙ "payment": "https://…/…/payments/f57eb662", }
  • 17. TODO: Retrieve Capture Operation GET https://…/…/payments/f57eb662 HTTP/1.1 Authorization: Bearer efee34ef79…461f78f51034ef11 Host: api.payex.com { "id": "https://…/…/payments/f57eb662", ︙ "operations": [{ "rel": "create-checkout-capture", "href": " https://…/…/f57eb662/captures", "method": "POST", }] }
  • 18. TODO: Retrieve Capture Operation GET https://…/…/payments/f57eb662 HTTP/1.1 Authorization: Bearer efee34ef79…461f78f51034ef11 Host: api.payex.com { "id": "https://…/…/payments/f57eb662", ︙ "operations": [{ "rel": "create-checkout-capture", "href": " https://…/…/f57eb662/captures", "method": "POST", }] }
  • 19. TODO: Capture the payment POST /…/payment-sessions/f57eb662/captures HTTP/1.1 Authorization: Bearer efee34ef79…461f78f51034ef11 Host: api.payex.com { "transaction": { "description": "Show me the money!" } }
  • 21. Et voilà! - @asbjornu - asbjorn.ulsberg@payex.com - slack.httpapis.com Asbjørn Ulsberg

Hinweis der Redaktion

  1. Show how the "barebones" version of the webshop looks like
  2. Manually retrieve an Access Token from PayEx Admin that can perform Invoice, Credit Card and Checkout payment operations.
  3. Add the JavaScript to the <head> of the HTML page that displays the purchasable items.
  4. In the Purchase <button> elements for each purchasable item, add a disabled attribute; PayEx Checkout will enable the button when it is initialized.
  5. In the Purchase <button> elements for each purchasable item, add a disabled attribute; PayEx Checkout will enable the button when it is initialized.
  6. Demo time! Hat tip to Spaceballs’ “State Of The Art”
  7. You can reach me on: Twitter E-mail Slack. Join the HTTP API slack! It's full of great people in love with the web and APIs.