Join GitHub today
GitHub is home to over 50 million developers working together to host and review code, manage projects, and build software together.
Sign upAPIStar as a cli-only API tool. #624
Conversation
|
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:
|
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.)
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)

Formed in 2009, the Archive Team (not to be confused with the archive.org Archive-It Team) is a rogue archivist collective dedicated to saving copies of rapidly dying or deleted websites for the sake of history and digital heritage. The group is 100% composed of volunteers and interested parties, and has expanded into a large amount of related projects for saving online and digital history.

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.