角后端服务调用没有休息调用

Posted

技术标签:

【中文标题】角后端服务调用没有休息调用【英文标题】:Angular back end service call without rest call 【发布时间】:2019-03-12 17:45:18 【问题描述】:

是否可以在没有 REST 特定方式的情况下从 Angular 4 调用后端服务?

我想实现一个 GUI,但使用 REST 受到限制,所以我想要其他方式来调用我的服务。

简而言之,我想创建一个传统的 MVC 项目,其中 Angular 是 VIEW。其余部分将保持与传统框架一样。

【问题讨论】:

你可以使用 WebSockets 您也可以使用服务器端事件。 ***.com/questions/40987560/… 在这些技术中,我还必须在服务器端实现我不想要的 REST API,我想创建一个传统的 MVC 项目,其中 Angular 是 VIEW ...其余的东西将保持不变是。 【参考方案1】:

您可以使用 WebSockets 与 Angular 应用程序的后端通信。

WebSocket 是与 HTTP 不同的协议,它可以在 Web 客户端(例如浏览器)和 Web 服务器之间以较低的开销进行交互。在 TLS 加密连接的情况下,通信通过 TCP 端口号 80 或 443 完成。

服务示例:Real Time Apps with TypeScript: Integrating Web Sockets, Node & Angular

import  Injectable  from '@angular/core';
import  Observable  from 'rxjs/Observable';
import  Observer  from 'rxjs/Observer';
import  Message  from '../model/message';
import  Event  from '../model/event';

import * as socketIo from 'socket.io-client';

const SERVER_URL = 'http://localhost:8080';

@Injectable()
export class SocketService 
    private socket;

    public initSocket(): void 
        this.socket = socketIo(SERVER_URL);
    

    public send(message: Message): void 
        this.socket.emit('message', message);
    

    public onMessage(): Observable<Message> 
        return new Observable<Message>(observer => 
            this.socket.on('message', (data: Message) => observer.next(data));
        );
    

    public onEvent(event: Event): Observable<any> 
        return new Observable<Event>(observer => 
            this.socket.on(event, () => observer.next());
        );
    
 

【讨论】:

在这些技术中,我还必须在服务器端实现我不想要的 REST API,我想创建一个传统的 MVC 项目,其中 Angular 是 VIEW ...其余的将保持不变是。

以上是关于角后端服务调用没有休息调用的主要内容,如果未能解决你的问题,请参考以下文章

Spring MVC - 从另一个休息服务内部调用休息服务

微服务下没有服务网关前端如何调用后端服务

来自 oauth2 安全休息 Web 服务的 Spring 休息服务 api 调用

从 Spark 调用休息服务

如何从 Blazor 应用调用休息服务

CORS - 从角度调用Tomcat上的休息服务