小编Kri*_*a P的帖子

ReST over websockets可能吗?

我计划开发一个基于Web的聊天应用程序,它接收ReSTful请求,将它们转换为XMPP并将它们传送到XMPP服务器.

对于这种基于聊天的应用程序使用websockets看起来很有希望,因为事件(或响应)可以异步传递.但是,如果我使用websockets作为从浏览器传输请求的底层协议,这仍然可以被视为ReSTful设计吗?如果是,那么在websocket消息中如何表示URI,动词(GET,POST ...)参数?将它们包装在xml/json中并发送它?

此外,ReSTful架构声明服务器上不会存储任何会话状态.但是在这种情况下,当创建XMPP客户端会话时,此会话的状态将存储在服务器上(违反无状态约束)

rest xmpp websocket

58
推荐指数
3
解决办法
5万
查看次数

使用mat-autocomplete为组件编写单元测试

我是Angular的新手,我正在尝试使用Angular 5构建一个具有自动完成功能的文本字段.

我在Angular Material docs中找到了这个例子:

https://stackblitz.com/angular/kopqvokeddbq?file=app%2Fautocomplete-overview-example.ts

我想知道如何编写单元测试来测试自动完成功能.我正在为input元素设置一个值并触发'input'事件并尝试选择mat-option元素,但是看到它们都没有创建:

我的组件html的相关部分:

<form>
  <mat-form-field class="input-with-icon">
    <div>
      <i ngClass="jf jf-search jf-lg md-primary icon"></i>
      <input #nameInput matInput class="input-field-with-icon" placeholder="Type name here"
             type="search" [matAutocomplete]="auto" [formControl]="userFormControl" [value]="inputField">
    </div>
  </mat-form-field>
</form>

<mat-autocomplete #auto="matAutocomplete">
  <mat-option *ngFor="let option of filteredOptions | async" [value]="option.name"
              (onSelectionChange)="onNameSelect(option)">
    {{ option.name }}
  </mat-option>
</mat-autocomplete>
Run Code Online (Sandbox Code Playgroud)

规格文件:

it('should filter users based on input', fakeAsync(() => {
    const hostElement = fixture.nativeElement;

    sendInput('john').then(() => {
        fixture.detectChanges();
        expect(fixture.nativeElement.querySelectorAll('mat-option').length).toBe(1);

        expect(hostElement.textContent).toContain('John Rambo');
    });
}));
function sendInput(text: string) {
    let inputElement: HTMLInputElement; …
Run Code Online (Sandbox Code Playgroud)

unit-testing autocomplete angular-material angular mat-autocomplete

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

将凭据发送到Google Dataflow作业

将凭证传递给Dataflow作业的正确方法是什么?

我的某些Dataflow作业需要凭据才能进行REST调用以及获取/后处理数据。

我目前正在使用环境变量将凭据传递给JVM,将它们读入Serializable对象,然后将其传递给DoFn实现的构造函数。我不确定这是正确的方法,因为任何可序列化的类都不应包含敏感信息。

我想到的另一种方法是将凭据存储在GCS中,并使用服务帐户密钥文件检索它们,但是想知道为什么我的工作应该执行从GCS读取凭据的任务。

google-cloud-platform google-cloud-dataflow

4
推荐指数
1
解决办法
550
查看次数