felixwieland / kosmo Goto Github PK
View Code? Open in Web Editor NEWGraphQL microservices with native types
License: MIT License
GraphQL microservices with native types
License: MIT License
To get detected by "pkg.go.dev" kosmo needs a suitable license e. g. "MIT".
The integration of httptest into kosmo could improve the quality of the project in terms of documentation and soundness.
Support apollo-link-batch-http in kosmo. A kosmo Server should resolve all queries that are passed in a Array. It should resolve all queries concurrently to speed up the response.
Kosmo should provide a tag to mark a argument as required.
E. g.:
type PassengerArgs struct {
Name string `kosmo:"required"`
Seat int
}
The project currently have some lines that are not covered by the tests. That lines should be covered.
The uncovered lines are reported at: https://coveralls.io/github/FelixWieland/kosmo.
Now that kosmo is displayable on pkg.go.dev (#13) kosmos README should display a badge that links to it's GoDoc on "pkg.go.dev".
To add this the following badge must be:
[![go.dev reference](https://img.shields.io/badge/go.dev-reference-007d9c?logo=go&logoColor=white&style=flat-square)](https://pkg.go.dev/mod/github.com/FelixWieland/kosmo)
In some cases kosmo doesnt creates a mutation resolver. This issue appears if the last passed in type doesnt have a mutation.
To make extending kosmo easier, a GoDoc should be provided. In addition, the README must be expanded to include the new configuration options
Kosmo is not currently implementing unit tests. To make refactoring easier, the entire library should be covered by unit tests. Goconvey should be used as the testing framework. This should also make learning / using / enhancing kosmo easier
At the moment a resolver that does not need any arguments has to accept an empty structure as an argument.
In the future, a resolver without arguments should also be supported so that the additional effort to declare a new resolver type is eliminated.
Starting point:
Line 91 in 7ac8e1f
To be up to date a use a built-in dependency management (not deps) kosmo should be upgraded to Go Modules
To make the development process more interactive, kosmo needs to speed up his schema reflection.
This could be relatively easy get done by using go routines for each type and resolver reflection.
To avoid deadlocks the used cache implementation must support parallel access.
Starting point:
Line 24 in 5518e08
Before the implementation starts, first check the following concurrency and parallelism rule:
https://github.com/golang/go/wiki/CodeReviewComments#synchronous-functions
and visit popular libraries to check how they implemented parallelism inside a library.
To allow the use of different http Servers kosmo should provide a option to return the raw http handler.
Starting point:
Line 12 in 4cce497
Currently kosmo does not allow inlined/child structs in type definitions. Kosmo should support that aswell to be compatible with ORM's like Bongo or GORM.
Currently kosmo supports only one query per type. To become more flexible, several queries per type should be allowed in the future.
Starting point:
Line 60 in e8b5272
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.