A love letter to Plumber ... and a request to find out more about its roadmap moving fowards. #920
Labels
difficulty: intermediate
Enterprising community members could help
effort: high
4+ days of work
theme: OpenAPI
pertains to OpenAPI
theme: plumb() ✨
`plumbBlock()` enhancements
type: enhancement
Adds a new, backwards-compatible feature
Milestone
I love Plumber.
Really, it's magical - especially when used with RapiClient. e.g. we find we can quickly setup a service like
This provides a "swagger" debug screen for manual testing:
![image](https://private-user-images.githubusercontent.com/533662/282472850-c5897eed-5786-4225-9ec8-d13dad20d17d.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3Mzk0NzA3NTUsIm5iZiI6MTczOTQ3MDQ1NSwicGF0aCI6Ii81MzM2NjIvMjgyNDcyODUwLWM1ODk3ZWVkLTU3ODYtNDIyNS05ZWM4LWQxM2RhZDIwZDE3ZC5wbmc_WC1BbXotQWxnb3JpdGhtPUFXUzQtSE1BQy1TSEEyNTYmWC1BbXotQ3JlZGVudGlhbD1BS0lBVkNPRFlMU0E1M1BRSzRaQSUyRjIwMjUwMjEzJTJGdXMtZWFzdC0xJTJGczMlMkZhd3M0X3JlcXVlc3QmWC1BbXotRGF0ZT0yMDI1MDIxM1QxODE0MTVaJlgtQW16LUV4cGlyZXM9MzAwJlgtQW16LVNpZ25hdHVyZT1hNGY2MzJkNDRlNzFiZWEwNTQxMjIxNjljOGYxYThmODdkYTU1NGNmODAwMzM1N2YwYTQ0NjdiYjBhMjE2NDBmJlgtQW16LVNpZ25lZEhlYWRlcnM9aG9zdCJ9.guqnTCaJG4r_voL9MpDQsq08yJn3Fap5ld2ovRPML94)
And using our internal wrapper around rapiclient - so we can then connect to the Plumber APIs in using simple R code like:
This gives us functions to call in R:
![image](https://private-user-images.githubusercontent.com/533662/282472890-8d319efc-d3b6-4c39-b392-027ae34cc6e4.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3Mzk0NzA3NTUsIm5iZiI6MTczOTQ3MDQ1NSwicGF0aCI6Ii81MzM2NjIvMjgyNDcyODkwLThkMzE5ZWZjLWQzYjYtNGMzOS1iMzkyLTAyN2FlMzRjYzZlNC5wbmc_WC1BbXotQWxnb3JpdGhtPUFXUzQtSE1BQy1TSEEyNTYmWC1BbXotQ3JlZGVudGlhbD1BS0lBVkNPRFlMU0E1M1BRSzRaQSUyRjIwMjUwMjEzJTJGdXMtZWFzdC0xJTJGczMlMkZhd3M0X3JlcXVlc3QmWC1BbXotRGF0ZT0yMDI1MDIxM1QxODE0MTVaJlgtQW16LUV4cGlyZXM9MzAwJlgtQW16LVNpZ25hdHVyZT1lMDQ3MjU5NTI2MjEwY2JkNzU1YTVkOWJhZjE2YWVlYWQ0MWMyYWQzYzZkMDc4MmMzMjA1OGY1MDE3MjVjOTQ4JlgtQW16LVNpZ25lZEhlYWRlcnM9aG9zdCJ9.vWTQ2HRAmg0jOUlqvXwDKnewgTBPtS_7N4m9e_12lR4)
And this even includes simple automagic documentation like:
![image](https://private-user-images.githubusercontent.com/533662/282472935-63c1aa65-8206-47c4-8d93-071dab71ff3e.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3Mzk0NzA3NTUsIm5iZiI6MTczOTQ3MDQ1NSwicGF0aCI6Ii81MzM2NjIvMjgyNDcyOTM1LTYzYzFhYTY1LTgyMDYtNDdjNC04ZDkzLTA3MWRhYjcxZmYzZS5wbmc_WC1BbXotQWxnb3JpdGhtPUFXUzQtSE1BQy1TSEEyNTYmWC1BbXotQ3JlZGVudGlhbD1BS0lBVkNPRFlMU0E1M1BRSzRaQSUyRjIwMjUwMjEzJTJGdXMtZWFzdC0xJTJGczMlMkZhd3M0X3JlcXVlc3QmWC1BbXotRGF0ZT0yMDI1MDIxM1QxODE0MTVaJlgtQW16LUV4cGlyZXM9MzAwJlgtQW16LVNpZ25hdHVyZT0xYzFiODcwNGFiN2RiZjk4NmQwMDY1MTA3NzczOTQ5OThmOGVkYTg0YTFiMzk1NTc5YjZlODcxMzk0MzkwMmZmJlgtQW16LVNpZ25lZEhlYWRlcnM9aG9zdCJ9.KOAVqJ24yoQRWQ36wFL14a2WcnC5vGwYGMtEspSsxr8)
And when we're happy with the functionality we've written, it can all be quickly and easily deployed to our Connect server where it benefits from our continuous deployment, from Posit's authentication and authorization; and from the logging and monitoring services there (Connect is integrated with our in-house AWS Cloudwatch and Splunk tooling),
... and it's not just data APIs ...
Our users are also now publishing charts via Plumber... and these charts are easy to integrate into Shiny apps (using a slightly modified renderImage), into RMarkdown reports (with a little extra file caching code) and into our "proper" software apps - apps with front ends built in Angular and React.
Really, all this is magical, delightful to use and absolutely fabulous for enabling our users to do awesome work. I love it <3
However... there is a concern...
Starting 12 months ago, I've been pushing forward PRs, I've been watching issues, and I've been looking at the API output from the Posit team... and it feels like Plumber is frozen. I've asked our business manager and product manager contacts in Posit about this every few months; and each time I've heard replies that Posit are excited about working on Plumber, and that they'll be working on it again "soon" ... but each time there's been no sign of any followup action: I've not seen any active branches, and the only PRs I've seen approved have been about RStudio->Posit name changes...
As the person who recommends technology routes internally, I'm a little concerned that in choosing Plumber I perhaps should instead have chosen a more actively developed platform... Should we instead be looking at alternative approaches like Python's Flask and FastAPI instead? I've seen both of those getting new features and fixes, including attention from the Posit team...
Is there anything the Plumber project maintainers can do to provide information about the future of Plumber?
Sorry if this sounds like a complaint... I didn't want it to sound like a complaint. I love Plumber - this is a love letter - I really do <3 the opportunities that Plumber gives us.
Thanks for reading - sorry for this being so long!
The text was updated successfully, but these errors were encountered: