Code Monkey home page Code Monkey logo

Comments (5)

Thorium avatar Thorium commented on May 29, 2024 1

FunStripe focus is "I have an F# (or dotnet) project and I want to take a payment".
It's not focusing to cover the full complexity of all the APIs and features Stripe as company offers.

from funstripe.

simontreanor avatar simontreanor commented on May 29, 2024 1

Hi Simon! Thanks for this library 🙂

It would be useful to have a comparison against Stripe.net, perhaps in the README. I'm working for a client who wants Stripe integration and, given Stripe.net is supported by the Stripe team, I'd like some justification if choosing this library over Stripe.net.

What was the reason that you created this library in the first place? Does it enable you to get access to API updates sooner? Write more idiomatic F#? Handle errors in a way that you prefer? Something else? Basically anything that points out why an F# dev might choose FunStripe over Stripe.net would be useful.

Thanks!

Hi Matt

I wrote this library originally as a contribution to the F# community, to get some practice with F#, writing and maintaining a large library, and so that we can make use of it in our company (it's been in use in production for over two years). We only use a small subset of the API, but the rest presumably works well as there have been plenty of downloads and no adverse feedback!

One of the main things I like about it (in addition to what you mention) is the strong typing of all the DUs, which are just strings in the official .NET version. This even includes error types and webhook events, avoiding typos and helping ensure all cases can be handled.

I did just create a new issue #7, where I list a few thoughts about future improvements, but I'm obviously aware that we don't want to introduce breaking changes over and above those that Stripe generate with each new API version.

I should also point out that FunStripe contains model and request builders that I use to generate new versions when Stripe updates the API. I have also made a library called FunStripeLite that is stripped down without any unnecessary clutter.

I'm open to feedback and suggestions so please let me know if you have any!

Simon

from funstripe.

Thorium avatar Thorium commented on May 29, 2024

That's a good idea... But you probably end-up using both. :-D

But, working with Stripe.Net for long time, you'll find out that Stripe does a lot of naming refactorings to their rest-api, and Stripe.Net has their own refactorings, and they are not always compatible, and many times the changes are not business reasons but their internal technical choices. And the backward compatibility is poor.

Just see the amount of version changes the Stripe.net dll has https://www.nuget.org/packages/Stripe.net/43.3.0-beta.1#versions-body-tab and think about this: Do you want to spend a time-slot of your day, 5 days a month, in the future to update the components and test if your payments are still working properly.

from funstripe.

mattgallagher92 avatar mattgallagher92 commented on May 29, 2024

Thanks Tuomas 🙂 That's a lot of package versions! 😅

The message that I'm hearing is that FunStripe aligns more closely with Stripe's Rest API, potentially making it easier to translate from samples; and has less churn, meaning less time spent worrying about a new version breaking something. I also like the use of F#-native types like Async<...> and Result<...>, which means easy usage of familiar patterns/libraries.

It's interesting to hear that you might use both libraries! Why might I choose to use Stripe.net in addition to FunStripe?

from funstripe.

mattgallagher92 avatar mattgallagher92 commented on May 29, 2024

Thanks Simon, that all makes sense 🙂 You're right, the strong typing is a definite bonus!

from funstripe.

Related Issues (6)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.