小编Thi*_*ier的帖子

如何为swagger REST API文档生成Java客户端代码

我的情况如下.

我有一个招摇.json例如:http://petstore.swagger.io/v2/swagger.json 我想为上面的REST API使用生成的java客户端,例如:

PetApi petApi = new PetApi();
Pet pet = new Pet;
pet.setName("cica");
pet.setId(1L);
petApi.addPet(pet);
System.out.println(petApi.getById(1L));`
Run Code Online (Sandbox Code Playgroud)

Expexted输出:cica根据REST API实现存储新宠物.

我已使用以下命令为petstore成功生成服务器存根:

java -jar modules/swagger-codegen-cli/target/swagger-codegen-cli.jar generate
     -i http://petstore.swagger.io/v2/swagger.json
     -l spring-mvc
     -o samples/server/petstore/spring-mvc
Run Code Online (Sandbox Code Playgroud)

但是这个maven项目代码是一个服务器代码.它像注释@RequestMappingPetApi.java,也有一个WebMvcConfiguration.class.

我不想拥有服务器存根.我想拥有一个petstore REST API的客户端库.

有没有可以为我生成适当的客户端库的工具?我应该修改服务器存根,因此它有所有模型或者我应该使用简单的springRestTemplate吗?

谢谢你的回答!

java rest swagger

24
推荐指数
4
解决办法
6万
查看次数

如何在运行时获取父类

是否有可能在运行时获取TypeScript类的父类?我的意思是,例如,在装饰者中:

export function CustomDecorator(data: any) {
  return function (target: Function) {
    var parentTarget = ?
  }
}
Run Code Online (Sandbox Code Playgroud)

我的自定义装饰器以这种方式应用:

export class AbstractClass {
  (...)
}

@CustomDecorator({
  (...)
})
export class SubClass extends AbstractClass {
  (...)
}
Run Code Online (Sandbox Code Playgroud)

在装饰器中,我想有一个实例AbstractClass.

非常感谢您的帮助!

typescript

9
推荐指数
1
解决办法
5467
查看次数

异步加载为Angular 2路由数据和构建路由指令

我尝试从angular2(从服务器获取路由配置)动态构建路由,之后我解析它并生成组件路由的指令(我将父路由配置和子路由到不同的组件,因为我不知道如何为子路径定义路由组件成一个main.app.ts文件).

问题是当应用程序启动并尝试创建路由配置并且routeGenerator不是构建路由时(异步延迟)无法t parse routes data (because async delay, so routesData undefined now) and app is crashig. I don知道如何处理此问题.寻找生命周期引擎盖(有些像 - @ Angular2BeforeAppStarted)却一无所获.

    import {Component, Input, OnChanges} from 'angular2/core';
import {RouteConfig, RouterOutlet, ROUTER_DIRECTIVES, Router} from 'angular2/router';
/* ------- !Angular 2 native components  ---------*/
import {routeGenInstance} from '../../config/routes/patient_routes';


protected const BUILT_MODULE_PATH: string = '/built/modules/patients/';

@Component({
  template: `
    <router-outlet ></router-outlet>
  `,
  directives: [RouterOutlet, ROUTER_DIRECTIVES]
})
@RouteConfig(routeGenInstance.getRouteDefinitions())

export class PatientsComponent {
  @Input();

  constructor() {}

}
Run Code Online (Sandbox Code Playgroud)

此外,我尝试以相同的方式更新路线(但应用程序立即崩溃,因为导航组件中的导航链接没有一些正确的链接方式)

import {RouteConfig, RouterOutlet, ROUTER_DIRECTIVES, Router} from 'angular2/router'; …
Run Code Online (Sandbox Code Playgroud)

asynchronous routes delay angular

8
推荐指数
2
解决办法
7493
查看次数

Angular2:令牌刷新捕获401错误

我是Angular2的新用户,尝试捕获401错误以进行令牌刷新,并计划重试原始请求...

这是我的authService.refresh方法:

refresh() : Observable<any> {
    console.log("refreshing token");
    this.accessToken = null;
    let params : string = 'refresh_token=' + this.refreshToken + '&grant_type=refresh_token';
    let headers = new Headers();
    headers.append('Authorization', 'Basic ' + this.clientCredentials);
    headers.append('Content-Type', 'application/x-www-form-urlencoded');

    return Observable.create(
        observer => {
            this._http.post('http://localhost:8080/oauth/token', params, {
                    headers : headers
            })
            .map(res => res.json()).subscribe(
                (data) => {
                    this.accessToken = data.access_token;
                    observer.next(this.accessToken);
                    observer.complete();
                },
                (error) => {
                    Observable.throw(error);
                }
            );
        });
 }
Run Code Online (Sandbox Code Playgroud)

然后我尝试在我的组件方法中使用刷新功能:

update(index : number) {
 let headers = new Headers();
 headers.append('Authorization', 'Bearer ' + this._authService.accessToken); …
Run Code Online (Sandbox Code Playgroud)

rxjs typescript angular

8
推荐指数
1
解决办法
6744
查看次数

如何在角度2中突出显示段落中的单词?

我已经在角度1.x中完成了这个但我想知道如何使用关键字在角度2..in angular 1.x iam中突出显示动态单词

        <td><div highlight="var" keywords="somename">      {{paragraph}}</div></td>
Run Code Online (Sandbox Code Playgroud)

我使用下面的angular-highlight.js完成了上面的html.

     angular.module('angular-highlight', [])
      .directive('highlight', function()
    {

    var component = function(scope, element, attrs) {

    if (!attrs.highlightClass) {
        attrs.highlightClass = 'angular-highlight';
    }

    var replacer = function(match, item) {
        return '<span class="'+attrs.highlightClass+'">'+match+'</span>';
    }
    var tokenize = function(keywords) {
        keywords = keywords.replace(new RegExp(',$','g'), '').split(',');
        var i;
        var l = keywords.length;
        for (i=0;i<l;i++) {
            keywords[i] = '\\b'+keywords[i].replace(new RegExp('^ | $','g'), '')+'\\b';
        }
        return keywords;
    }

    scope.$watch('keywords', function() {
        //console.log("scope.keywords",scope.keywords);
        if (!scope.keywords || scope.keywords == '') {
            element.html(scope.highlight); …
Run Code Online (Sandbox Code Playgroud)

highlight angular

8
推荐指数
2
解决办法
6409
查看次数

使用NgFor在angular2中生成子组件不起作用

我正在使用angular2 alpha 37.

我已经定义了一个<map>组件和一个<marker>组件(子组件<map>).该<map>组件有一个数组数据成员,其中包含标记坐标列表.该<map>视图应显示阵列中的所有标记

在定义<map>视图时,如下所示(显式列出所有数组成员的组件):

@View({
  template:`
    <marker [model]="markers[0]"></marker>
    <marker [model]="markers[1]"></marker>
  `,
  directives:[Marker]
})
Run Code Online (Sandbox Code Playgroud)

<marker>只要相应的数组成员发生更改,组件就会更新.这是期望的行为.

定义<map>视图时如下(使用NgFor):

@View({
  template: '<marker *ng-for="#m of markers" [model]="m"></marker>',
  directives:[Marker,NgFor]
})
Run Code Online (Sandbox Code Playgroud)

每当阵列成员改变时,都会创建一个新标记,这是不可取的.

针说我想用这个NgFor方法.

我不知道发生了什么事.我如何使用NgFor但避免<marker>在单个标记更新时创建新实例?

angular

6
推荐指数
1
解决办法
3344
查看次数

服务和组件属性之间的angular2数据绑定

我需要澄清服务和组件属性之间的绑定以及angular2中的数据绑定

假设我有一个服务(单身)和一个组件

export class Service {
 name = "Luke";
 object = {id:1};
 getName(){return this.name};
 getObject(){return this.object};
}

export class Component implements OnInit{
 name:string;
 object:any;
 constructor(private _service:Service){}
 ngOnInit():any{

   //Is this 2 way binding?
   this.name = this._service.name;
   this.object = this._service.object;

   //Is this copying?
   this.name = this._service.getName();
   this.object = this._service.getObject();
  }
}
Run Code Online (Sandbox Code Playgroud)

data-binding two-way angular2-services angular

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

Angular2路由器弃用的依赖项未加载

我最近更新了我的angular2版本并遇到了以下问题:

  1. 路由器lib不再存在,已被路由器弃用.

  2. 我有这个菜单组件:

    import { Component }       from '@angular/core';
    import { DashboardComponent } from './dashboard.component'
    import { RouteConfig, ROUTER_DIRECTIVES, ROUTER_PROVIDERS } from '@angular/router-deprecated';
    
    @Component({
      selector: 'main-menu',
      templateUrl: 'app/views/menu.html',
      directives: [ROUTER_DIRECTIVES],
      providers: [
        ROUTER_PROVIDERS
      ]
    })
    
    @RouteConfig([
      {
        path: '/dashboard',
        name: 'Dashboard',
        component: DashboardComponent,
        useAsDefault: true
      }
    ])
    
    export class MenuComponent {}
    
    Run Code Online (Sandbox Code Playgroud)
  3. 当我尝试加载它时,应用程序失败,因为它无法解析路由器所需的文件 - 已弃用.我收到以下错误:

错误的图像

angular2-routing angular

6
推荐指数
1
解决办法
8394
查看次数

如何存储每个用户的数据并防止其他人看到它们

我想知道 Firebase 是否可以实现以下功能:

  • 在 Firebase 应用程序中处理多个用户
  • 用户可以使用 OAuth2 和 Google 等外部提供商进行注册
  • 每个用户都有自己的数据集
  • 其他用户看不到特定用户的数据

Firebase 将在没有服务器端应用程序的前端 Web 应用程序中使用。

非常感谢您的帮助。

firebase firebase-security

6
推荐指数
1
解决办法
3150
查看次数

Cypress 测试在本地是绿色的,但在 Gitlab CI 中失败

我用 Cypress 实现了 e2e 测试。它们工作正常,我可以根据应用程序的打包版本使用命令行运行它们:npm run ci:cy-run.

以下是来自的命令package.json

"ci:start-server": "angular-http-server --path ./dist/treo -p 4200",
"cy:run": "cypress run --project e2e --browser chrome --headless",
"ci:cy-run": "start-server-and-test ci:start-server http://localhost:4200 cy:run"
Run Code Online (Sandbox Code Playgroud)

当我尝试使用此 .gitlab-ci.yml 文件在 Gitlab CI 中执行此命令时:

image: teracy/angular-cli:latest
image: cypress/browsers:node12.16.2-chrome81-ff75
build:
    stage: build
    cache:
        paths:
            - node_modules/
    script:
        - npm install --quiet
        - npm run build:prod
    artifacts:
        paths:
            - dist/myapp
test:
    stage: test
    cache:
        policy: pull
    paths:
        - node_modules/
  script:
      - npm run lint
      - npx cypress install
      - …
Run Code Online (Sandbox Code Playgroud)

javascript continuous-integration gitlab-ci e2e-testing cypress

5
推荐指数
1
解决办法
1192
查看次数