<p>Hi,
so I'm starting a new project which will contain a GraphQL API. I'm about to choose the multiplexer now and have three candidates on my plate which would all work well IMHO.
Performance is not a criterium here IMHO, they seem to be all decent here. Some criteria for me are maintainability and that the project is alive.</p>
<p><strong><a href="https://github.com/go-zoo/bone" rel="nofollow">https://github.com/go-zoo/bone</a></strong></p>
<p>Just discovered this. Selling point: Faster than the others.
But it is still quite new.</p>
<p><strong><a href="https://github.com/gorilla/mux" rel="nofollow">https://github.com/gorilla/mux</a></strong></p>
<p>Seeing this very often.</p>
<p><strong><a href="https://github.com/julienschmidt/httprouter" rel="nofollow">https://github.com/julienschmidt/httprouter</a></strong></p>
<p>So far my goto choice in other projects.</p>
<hr/>
<p>Do you have thoughts here? Is there an option I haven't looked at yet?</p>
<hr/>
<p>Options from the comments:</p>
<p><strong><a href="https://github.com/go-chi/chi" rel="nofollow">https://github.com/go-chi/chi</a></strong></p>
<p>I like it that they rank maintainability and developer productivity higher than performance.</p>
<p><strong><a href="https://github.com/avelino/awesome-go#routers" rel="nofollow">https://github.com/avelino/awesome-go#routers</a></strong></p>
<p>A nice list of available routers.</p>
<hr/>**评论:**<br/><br/>adelowo: <pre><p>You should take a look at <a href="https://github.com/go-chi/chi" rel="nofollow">https://github.com/go-chi/chi</a> ... </p></pre>philiplb: <pre><p>Thank you.
Ok, why? :)
So far, I like:</p>
<blockquote>
<p>The key considerations of chi's design are: project structure, maintainability, standard http handlers (stdlib-only), developer productivity, and deconstructing a large system into many small parts.</p>
</blockquote></pre>tdewolff: <pre><p>Thanks for bringing up GraphQL, that is exactly what I was looking for!</p>
<p>I have been switching between a couple of multiplexers, see also <a href="https://github.com/avelino/awesome-go#routers" rel="nofollow">https://github.com/avelino/awesome-go#routers</a> for a more complete list. My own experience is that I dislike frameworks, they never seem to play nice with other packages that I want to use. Replacing <code>http.Handler</code> is a big no-no for me. In that respect I like <code>httprouter</code>, but <code>chi</code> looks nice too. At the end of the day, if it works it works. Just go with whatever you feel comfortable with.</p></pre>philiplb: <pre><p>I totally agree with the frameworks. This way, it is very easy to switch multiplexers if the requirements change.</p></pre>shovelpost: <pre><p>Any reason you have rejected the standard library multiplexer?</p></pre>philiplb: <pre><p>Just the feeling of needing convinient URL-Parameters.</p></pre>snippet2: <pre><p>Why not <a href="https://go-macaron.com" rel="nofollow">https://go-macaron.com</a> actually has really nice json control and uses others middleware. It's more of a framework then a package. I also like the multiple method routes.</p></pre>
这是一个分享于 的资源,其中的信息可能已经有所发展或是发生改变。
入群交流(和以上内容无关):加入Go大咖交流群,或添加微信:liuxiaoyan-s 备注:入群;或加QQ群:692541889
- 请尽量让自己的回复能够对别人有帮助
- 支持 Markdown 格式, **粗体**、~~删除线~~、
`单行代码`
- 支持 @ 本站用户;支持表情(输入 : 提示),见 Emoji cheat sheet
- 图片支持拖拽、截图粘贴等方式上传