我的情况如下.
我有一个招摇.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项目代码是一个服务器代码.它像注释@RequestMapping中PetApi.java,也有一个WebMvcConfiguration.class.
我不想拥有服务器存根.我想拥有一个petstore REST API的客户端库.
有没有可以为我生成适当的客户端库的工具?我应该修改服务器存根,因此它有所有模型或者我应该使用简单的springRestTemplate吗?
谢谢你的回答!
是否有可能在运行时获取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.
非常感谢您的帮助!
我尝试从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) 我是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) 我已经在角度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) 我正在使用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>在单个标记更新时创建新实例?
我需要澄清服务和组件属性之间的绑定以及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) 我最近更新了我的angular2版本并遇到了以下问题:
路由器lib不再存在,已被路由器弃用.
我有这个菜单组件:
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)当我尝试加载它时,应用程序失败,因为它无法解析路由器所需的文件 - 已弃用.我收到以下错误:
我想知道 Firebase 是否可以实现以下功能:
Firebase 将在没有服务器端应用程序的前端 Web 应用程序中使用。
非常感谢您的帮助。
我用 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
angular ×6
typescript ×2
asynchronous ×1
cypress ×1
data-binding ×1
delay ×1
e2e-testing ×1
firebase ×1
gitlab-ci ×1
highlight ×1
java ×1
javascript ×1
rest ×1
routes ×1
rxjs ×1
swagger ×1
two-way ×1