Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Resource builder? #19

Closed
panesofglass opened this issue May 31, 2020 · 7 comments
Closed

Resource builder? #19

panesofglass opened this issue May 31, 2020 · 7 comments
Assignees
Labels
enhancement New feature or request plugin A base library extension

Comments

@panesofglass
Copy link

panesofglass commented May 31, 2020

How do you feel about providing a resource builder?

@pimbrouwers
Copy link
Owner

I thought long and hard about adding something like this. Basically a way to plug in a "group" of handlers that would form a REST unit for a specific resource (i.e. /user). But to me, it feels too much like a pattern and not enough like core functionality (in this next commit, I'm also removing form streaming functionality for this same reason).

The philosophy of this library is to provide only the utility required to build a "complete" server-side application. It's difficult to draw a line around what "complete" means in this case. But to this point, I've seen it as:

  • Build & run self-host mechanism
  • Handle routing
  • Process requests
  • Model binding
  • Render text
  • Render markup (html, svg, xml)
  • Render JSON
  • Authentication & Authorization

With that said, I think there is tremendous utility to these type of tools. So I wonder if we handle this by creating sub-packages, for example Falco.ApiBuilder and Falco.MultipartStreaming? This allows the core package to be light and clean, and enables incremental enhancement. We'd also have to decide at that point whether we should house all of this under an organization account?

@panesofglass
Copy link
Author

Sounds good. My more recent goal with Frank was to redo Freya directly on top of ASP.NET Core. Maybe Falco.WebMachine? :)

@panesofglass
Copy link
Author

How about I start be replacing the WebHostBuilder in Frank with the one from Falco, then we work it in, if we want, from there?

@pimbrouwers
Copy link
Owner

That sounds like an excellent idea! I'm really looking forward to merging our efforts. And I appreciate that you're open to doing it under the "Falco" umbrella :)

@panesofglass
Copy link
Author

Well, Frank no longer has any brand value, and it is so far from Sinatra at this point, I don’t see the point of the name. Besides, all these separate but similar packages make it harder to get started.

@pimbrouwers pimbrouwers added enhancement New feature or request plugin A base library extension and removed enhancement New feature or request labels Jun 12, 2020
@panesofglass
Copy link
Author

I've got the WebHostBuilder in Frank matching roughly with yours. Next step is to replace it. See anything in mine that might be worth pulling over before I make the swap?

@pimbrouwers
Copy link
Owner

pimbrouwers commented Jun 12, 2020 via email

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request plugin A base library extension
Projects
None yet
Development

No branches or pull requests

2 participants