This repository has been archived by the owner on Feb 25, 2022. It is now read-only.
-
Notifications
You must be signed in to change notification settings - Fork 411
Conversation
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
10 tasks
This is very rough for projects built on APIStar. Do you plan to create a migration guide from APIStar to Starlette? Does Starlette have feature parity with APIStar? |
So, Starlette takes advantage of ASGI properly, whereas for APIStar it's a bit bolted on. As a result there are a number of things that Starlette does (or soon will do) that aren't so obvious how to nicely build into APIStar, in particular:
It also does a much better job of clear, consistent design. What it doesn't do, that APIStar does is:
I've not been convinced that APIStar's dependency injection is necessarily that great a solution to anything much, but even if I was, I'd rather see the projects properly scoped. Here's some different paths we could go down:
|
This was referenced Sep 25, 2018
Closed
Closed
Closed
Closed
Closed
Closed
Closed
This was referenced Sep 26, 2018
Closed
andrewgodwin
pushed a commit
to django/asgiref
that referenced
this pull request
Sep 27, 2018
Drop API Star, since from 0.6 onwards it's [descoped into a framework-agnostic suite of API tools](encode/apistar#624), rather than a complete server implementation. (Starlette has picked up the mantle for my own work on an ASGI framework implementation.)
bbelderbos
added a commit
to talkpython/100daysofweb-with-python-course
that referenced
this pull request
Jul 27, 2020
we can just work with the fixed apistar==0.5.41 version, no range needed (starting 0.6 the project's focus changed: encode/apistar#624)
Sign up for free
to subscribe to this conversation on GitHub.
Already have an account?
Sign in.
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
This PR is working towards removing the server framework stuff from APIStar completely, in order to focus on cross-framework tooling for APIs, as discussed initially here: https://discuss.apistar.org/t/splitting-out-the-server/551/19
The initial set of CLI tools would be:
apistar validate
- Validate an OpenAPI or Swagger schema.apistar doc
- Generate API documentation, given an API schema.apistar request
- Make a client request to an API.apistar mock
- Serve a mock API.There would also be programmatic access to any of those functions, eg. Python API client that takes a schema on instantiation, and allows the user to then interact with the API.
The type system would also be a documented part of the library, along with API for generating HTML forms out of the types, and for marshalling between JSON Schema and APIStar types.
I haven't quite figured out what I want to do about the server stuff in APIStar (or not), but I'm not happy with it in it's current state, and Starlette does a far better job of pushing forward the fundamentals of an ASGI server.
I know this won't be a particularly popular direction, but I'm keen to focus APIStar on becoming a framework-agnostic tool, for generating and serving API documentation, using as an API client etc. rather than yet-another framework.