Swagger Code Generator可以生成多种语言的SDK(下面列出的是Github项目页面).有没有人在生产中使用Swagger的任何自动生成的SDK,包括alpha/beta和GA,如果有的话,有哪些组织和什么语言?
我做了一些Google搜索并询问了一下.虽然我发现了许多Swagger UI的部署示例,但我还没有找到任何Code Gen SDK.
项目页面:https://github.com/swagger-api/swagger-codegen
语言:
$ ls -1 modules/swagger-codegen/src/main/java/com/wordnik/swagger/codegen/languages/
AndroidClientCodegen.java
AsyncScalaClientCodegen.java
CSharpClientCodegen.java
JavaClientCodegen.java
JaxRSServerCodegen.java
NodeJSServerCodegen.java
ObjcClientCodegen.java
PhpClientCodegen.java
PythonClientCodegen.java
RubyClientCodegen.java
ScalaClientCodegen.java
ScalatraServerCodegen.java
SpringMVCServerCodegen.java
StaticDocCodegen.java
StaticHtmlGenerator.java
SwaggerGenerator.java
SwaggerYamlGenerator.java
TizenClientCodegen.java
Run Code Online (Sandbox Code Playgroud)
更新 - 主要项目官方SDK跟踪(2018年6月)
我正在跟踪大型组织中可识别的官方codegen SDK,以便更好地跟踪采用情况.许多将自己列为使用某些codegen项目的组织尚未在其GitHub帐户上发布SDK.
更新 - 个人经历(2017年12月)
我一直在积极使用Swagger Codegen for Go(2.2.3 - 2.3.1).到目前为止,我的经验是它做得不错,但是需要进行各种手动调整才能获得有效的SDK,因此GitHub包/ repo仍然不错.您可以看到我维护的SDK的GitHub问题中的一些问题.我还将post处理添加到codegen/swagger_codegen_command.sh
每个repo中的文件中.
更新 - 添加OpenAPI生成器(2018年7月)
OpenAPI Generator是Swagger Codegen的一个分支,所以现在也提到了这一点.
当我AppTheme.NoActionBar
通过android:theme
这样的方式将自动生成应用于我的活动时:
AndroidManifest.xml中:
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="mypackage">
<application
...
android:theme="@style/AppTheme">
<activity
android:name=".MainActivity"
android:theme="@style/AppTheme.NoActionBar" />
</application>
</manifest>
Run Code Online (Sandbox Code Playgroud)
我的MainActivity通过顶部的透明状态栏进行渲染,最终具有白色背景和白色文本.如果设备正在充电,那么这是唯一可见的符号.
来自AppTheme.NoActionBar的透明ActionBar
这是我的values/styles.xml:
<resources>
<!-- Base application theme. -->
<style name="AppTheme" parent="Theme.AppCompat.Light.DarkActionBar">
<!-- Customize your theme here. -->
<item name="colorPrimary">@color/colorPrimary</item>
<item name="colorPrimaryDark">@color/colorPrimaryDark</item>
<item name="colorAccent">@color/colorAccent</item>
</style>
<style name="AppTheme.NoActionBar">
<item name="windowActionBar">false</item>
<item name="windowNoTitle">true</item>
</style>
<style name="AppTheme.AppBarOverlay" parent="ThemeOverlay.AppCompat.Dark.ActionBar"/>
<style name="AppTheme.PopupOverlay" parent="ThemeOverlay.AppCompat.Light"/>
</resources>
Run Code Online (Sandbox Code Playgroud)
在第二种样式中,您可以看到AppTheme.NoActionBar
,默认情况下会继承AppTheme,但是在任何一种样式中都没有指定状态栏应该是透明的.
问题:如何使用Doxygen记录Ruby代码?
免责声明:我知道ruby已经有一个内置文档的系统,并且可能还有其他方法可以做到这一点,但我正在运行的具体约束是如何让Doxygen完成这项工作(假设有可能).
我有一个.tt脚本需要引用几个外部程序集.
T4主机是否可以自动包含项目中引用的程序集 - 而不是手动为每个程序集添加程序集指令?
例如,当使用相对于的路径时,从nuget引用程序集是一个移动目标$(ProjecDir)
.
使用汇编路径$(Project)\bin\Debug\Example.dll
似乎也不是最优的 - 因为它要求构建以前已经成功 - 如果你有.tt文件ErrorGeneratingOutput
在.cs文件中生成" ",情况可能不是这样!
更新1:
所以我对此进行了第二次尝试,但这次尝试解决围绕"TransformOnBuild"的问题(作为旁注,我强烈推荐@ kzu的优秀项目:https://github.com/clariuslabs/TransformOnBuild)而没有$(SolutionDir)在没有直接从msbuild运行TextTransform时可用.无论如何 - 我想出了一个两步解决方案.
msbuild目标使用WriteLinesToFile任务根据csproj文件中的引用生成一个.tt文件,其中包含一个新的程序集指令列表.
项目中的任何其他.tt文件都可以包含自动生成的文件以获取已注册的项目程序集.
以下是目标的示例:
<Target Name="Write_AssemblyRefs_TT" BeforeTargets="TransformOnBuild">
<!-- A message for all to enjoy! -->
<WriteLinesToFile File="@(MyTextFile)"
Lines="<# /* AUTOGENERATED BY MSBUILD and Kern Herskind Nightingale */ #>"
Overwrite="true"
Encoding="Unicode" />
<!-- Output all assembly references with a HintPath -->
<WriteLinesToFile File="@(MyTextFile)"
Lines="<#@ assembly name="$(ProjectDir)%(Reference.HintPath)" #>"
Overwrite="false"
Encoding="Unicode"
Condition="'%(Reference.HintPath)' != ''" />
<!-- Output all …
Run Code Online (Sandbox Code Playgroud) 我正在尝试为使用 JSDoc 注释的类型和函数发出声明。这些对 TypeScript 用户很有用,从 JSDoc 生成它们意味着我们 SDK 开发人员的开销更少。
TypeScript 用户应该调用一个模块Apify
并从中访问我们的 SDK 功能。
import {Apify} from "apify";
const envs = Apify.getEnv();
...
Run Code Online (Sandbox Code Playgroud)
这不会发生,生成的index.d.ts
包含多个模块,每个 JS 源文件一个。
我的 JavaScript 库是客户端代码可见的单个模块。源代码由src/
目录中的多个文件组成:
src/index.js
src/actor.js
src/request.js
该index.js
文件重新导出在其他文件中定义的函数,因此它们可以被在 Node.js 中运行的客户端代码访问。
import { main, getEnv, call, callTask, ... } from './actor';
import Request from './request';
...
/**
* The following section describes all functions and properties provided by the `apify` package...
*
* @module Apify
*/
module.exports …
Run Code Online (Sandbox Code Playgroud) auto-generate node.js jsdoc typescript typescript-declarations
我正在使用PostgreSQL和Alembic进行迁移.当我向User表添加新列时,Alembic使用以下脚本生成了迁移:
revision = '4824acf75bf3'
down_revision = '2f0fbdd56de1'
from alembic import op
import sqlalchemy as sa
def upgrade():
op.add_column(
'user',
sa.Column(
'username',
sa.Unicode(length=255),
nullable=False
)
)
def downgrade():
op.drop_column('user', 'username')
Run Code Online (Sandbox Code Playgroud)
我真正想要做的是在升级生产版本时自动生成用户名的值.换句话说,我的生产版本中有很多用户,如果我在其上运行上述升级,则会出现错误,指出用户名不能为NULL,因此我必须删除所有用户,升级用户表和再次添加用户后,这很痛苦.因此,我想用以下内容更改上述脚本:
revision = '4824acf75bf3'
down_revision = '2f0fbdd56de1'
from alembic import op
import sqlalchemy as sa
def upgrade():
op.add_column(
'user',
sa.Column(
'username',
sa.Unicode(length=255)
)
)
op.execute(
'UPDATE "user" set username = <email address with no '@'
and everything comes after '@' sign should be removed>
WHERE email is not null'
)
<only …
Run Code Online (Sandbox Code Playgroud) 我有源代码(大部分的存储库*.php
,*.js
)和文档文件(主要是*.md
,*.html
,*.svg
)自动从注释生成.所有文档都位于./doc
存储库中的单独子目录()中.
一方面,我希望通过跟踪文档,git
如果它发生变化,我希望它被提交/推送到服务器,因为它有一个很好的可浏览和最新文档很不方便由github显示.
另一方面,在输出git diff
命令期间看到自动生成的文件是非常烦人的.例如,如果在两次提交之间更改了一行源代码,则git diff
不仅会输出此单行,而且还会输出所有自动生成的文档,因为整个自动生成的文档已更改.
有没有办法告诉git跟踪文档但diff
默认情况下将其排除?如果git将所有文档文件视为blob,我也会对我好.然后,至少diff
只会声称文件已更改,但不会显示所有文档行每行.
所以我遵循了高级自动依赖生成论文 -
Makefile:
SRCS := main.c foo.c
main: main.o foo.o
%.o: %.c
$(CC) -MMD -MG -MT '$@ $*.d' -c $< -o $@
cp $*.d $*.tmp
sed -e 's;#.*;;' -e 's;^[^:]*: *;;' -e 's; *\\$$;;' \
-e '/^$$/d' -e 's;$$; :;' < $*.tmp >> $*.d
rm $*.tmp
clean::
-rm *.o *.d main
-include $(SRCS:.c=.d)
Run Code Online (Sandbox Code Playgroud)
main.c:
#include "foo.h"
int main(int argc, char** argv) {
foo() ;
return 0 ;
}
Run Code Online (Sandbox Code Playgroud)
foo.h:
#ifndef __FOO_H__
#define __FOO_H__
void foo() …
Run Code Online (Sandbox Code Playgroud) 我正在使用DBArtisan 8.5.5并且它能够使用Build Query生成数据库图,它有一个很好的功能,可以自动加入,检测新添加的表上的潜在关系.因此,图表结果是一个SQL语句,因为它毕竟是一个查询生成器.
是否可以在DBArtisan中提供SQL语句并生成数据库图表?换句话说,反过来(给SQL生成图,而不是使用图表来生成SQL)?
如果没有这样的功能,是否有适用于Sybase DB的产品将提供所述功能?
我有部分方法生成的代码
{
...
partial void InterceptOperationCall(IOperationContext context);
...
async Task SomeMethod()
{
InterceptOperationCall(cntx);
await LongOperation(cntx);
}
}
Run Code Online (Sandbox Code Playgroud)
和handwrited部分
{
partial void InterceptOperationCall(IOperationContext context)
{
}
}
Run Code Online (Sandbox Code Playgroud)
我需要在内部执行异步调用InterceptOperationCall
是否有人知道某种方法来解决部分方法限制?
换句话说: 我想在长时间操作之前异步进行InterceptOperationCall并保证,同时我想在另一个文件中声明这个方法的主体.
UPD作为解决方案解决方案我选择:
Castle.DynamicProxy
)进行包装并使用AsyncInterceptorBase
from(Nito.AsyncEx
)进行拦截
我一直在寻找更好的解决方案,如果有人知道另一种提供可选功能的方法,用somoe异步逻辑包装异步调用,请帮助我.