Skip to content

Arrow Endpoint offers a composable Endpoint datatype, that allows us easily define an Endpoint from which we can derive clients, servers & documentation.

Notifications You must be signed in to change notification settings

arrow-kt/arrow-endpoint

Repository files navigation

Arrow Endpoint

Arrow Endpoint offers a composable Endpoint datatype, that allows us easily define an Endpoint from which we can derive clients, servers & documentation.

Rationale

When working on functional applications we care about function signatures, in the domain of endpoints this boils down to suspend (Input) -> Either<Error, Output>.

This signature models any endpoint that takes an Input, and returns with either a domain Error, an Output or an unknown Throwbale from the suspend side effect. Where Error means a return with StatusCode outside of the 2xx range

So we want to be able to work with Endpoint as such. So given the definition of an Endpoint<Input, Error, Output> we want to be able to:

  • Derive a client with shape suspend (Input) -> Either<Error, Output>
  • Derive a server that runs suspend (Input) -> Either<Error, Output>
  • Provide http documentation in the desired shape

About

Arrow Endpoint offers a composable Endpoint datatype, that allows us easily define an Endpoint from which we can derive clients, servers & documentation.

Resources

Stars

Watchers

Forks

Packages

No packages published

Languages