标签: auto-generate

有人在生产中使用Swagger Codegen或OpenAPI Generator SDK吗?

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的一个分支,所以现在也提到了这一点.

sdk auto-generate swagger swagger-codegen openapi-generator

14
推荐指数
2
解决办法
1万
查看次数

使用AppTheme.NoActionBar时,Android状态栏是透明的

当我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通过顶部的透明状态栏进行渲染,最终具有白色背景和白色文本.如果设备正在充电,那么这是唯一可见的符号.

透明的ActionBar

来自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,但是在任何一种样式中都没有指定状态栏应该是透明的.

android themes auto-generate android-actionbar

14
推荐指数
1
解决办法
8616
查看次数

如何使用Doxygen记录Ruby代码?

问题:如何使用Doxygen记录Ruby代码?

免责声明:我知道ruby已经有一个内置文档的系统,并且可能还有其他方法可以做到这一点,但我正在运行的具体约束是如何让Doxygen完成这项工作(假设有可能).

ruby documentation doxygen auto-generate

13
推荐指数
1
解决办法
4791
查看次数

在T4中使用项目引用作为程序集路径

我有一个.tt脚本需要引用几个外部程序集.

T4主机是否可以自动包含项目中引用的程序集 - 而不是手动为每个程序集添加程序集指令?

例如,当使用相对于的路径时,从nuget引用程序集是一个移动目标$(ProjecDir).

使用汇编路径$(Project)\bin\Debug\Example.dll似乎也不是最优的 - 因为它要求构建以前已经成功 - 如果你有.tt文件ErrorGeneratingOutput在.cs文件中生成" ",情况可能不是这样!

更新1:

所以我对此进行了第二次尝试,但这次尝试解决围绕"TransformOnBuild"的问题(作为旁注,我强烈推荐@ kzu的优秀项目:https://github.com/clariuslabs/TransformOnBuild)而没有$(SolutionDir)在没有直接从msbuild运行TextTransform时可用.无论如何 - 我想出了一个两步解决方案.

  1. msbuild目标使用WriteLinesToFile任务根据csproj文件中的引用生成一个.tt文件,其中包含一个新的程序集指令列表.

  2. 项目中的任何其他.tt文件都可以包含自动生成的文件以获取已注册的项目程序集.

以下是目标的示例:

<Target Name="Write_AssemblyRefs_TT" BeforeTargets="TransformOnBuild">
  <!-- A message for all to enjoy! -->
  <WriteLinesToFile File="@(MyTextFile)" 
    Lines="&lt;# /* AUTOGENERATED BY MSBUILD and Kern Herskind Nightingale */ #&gt;" 
    Overwrite="true" 
    Encoding="Unicode" />
  <!-- Output all assembly references with a HintPath -->
  <WriteLinesToFile File="@(MyTextFile)" 
    Lines="&lt;#@ assembly name=&quot;$(ProjectDir)%(Reference.HintPath)&quot; #&gt;" 
    Overwrite="false"
    Encoding="Unicode"
    Condition="'%(Reference.HintPath)' != ''" />
  <!-- Output all …
Run Code Online (Sandbox Code Playgroud)

.net c# t4 auto-generate .net-assembly

13
推荐指数
1
解决办法
3189
查看次数

为 Node.js 模块中重新导出的 JS 函数生成 TypeScript 声明

我正在尝试为使用 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

13
推荐指数
1
解决办法
626
查看次数

使用alembic升级表时设置列的值

我正在使用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)

database postgresql upgrade auto-generate alembic

12
推荐指数
1
解决办法
4590
查看次数

使git跟踪自动生成的文件但忽略diff

我有源代码(大部分的存储库*.php,*.js)和文档文件(主要是*.md,*.html,*.svg)自动从注释生成.所有文档都位于./doc存储库中的单独子目录()中.

一方面,我希望通过跟踪文档,git如果它发生变化,我希望它被提交/推送到服务器,因为它有一个很好的可浏览和最新文档很不方便由github显示.

另一方面,在输出git diff命令期间看到自动生成的文件是非常烦人的.例如,如果在两次提交之间更改了一行源代码,则git diff不仅会输出此单行,而且还会输出所有自动生成的文档,因为整个自动生成的文档已更改.

有没有办法告诉git跟踪文档但diff默认情况下将其排除?如果git将所有文档文件视为blob,我也会对我好.然后,至少diff只会声称文件已更改,但不会显示所有文档行每行.

git code-generation auto-generate gitignore

12
推荐指数
2
解决办法
2258
查看次数

GNU make:使用生成的头文件生成自动依赖项

所以我遵循了高级自动依赖生成论文 -

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)

makefile gnu-make auto-generate

11
推荐指数
1
解决办法
1万
查看次数

从任何sql语句生成db图

我正在使用DBArtisan 8.5.5并且它能够使用Build Query生成数据库图,它有一个很好的功能,可以自动加入,检测新添加的表上的潜在关系.因此,图表结果是一个SQL语句,因为它毕竟是一个查询生成器.

是否可以在DBArtisan中提供SQL语句并生成数据库图表?换句话说,反过来(给SQL生成图,而不是使用图表来生成SQL)?

如果没有这样的功能,是否有适用于Sybase DB的产品将提供所述功能?

sql ide diagram auto-generate dbartisan

11
推荐指数
1
解决办法
2万
查看次数

如何使部分方法异步

我有部分方法生成的代码

{
    ...
    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)进行包装并使用AsyncInterceptorBasefrom(Nito.AsyncEx)进行拦截
  • 另一种选择我看到重写代码生成器

一直在寻找更好的解决方案,如果有人知道另一种提供可选功能的方法,用somoe异步逻辑包装异步调用,请帮助我.

c# asynchronous auto-generate

10
推荐指数
1
解决办法
629
查看次数