tenho uma api java no backend com os seguintes metodos:
GET javaee/rest/logs/all
GET javaee/rest/logs/{id}
PUT javaee/rest/logs (log object no body)
POST javaee/rest/logs/manual (log object no body)
DELETE javaee/rest/logs?id={id}
No front tenho uma app angular8. Rodando localmente (ng serve open) tá tudo certo.
Agora preciso fazer dpeloy no nginx, mas não sei direito como mapear os métodos para o backend . Como configuro o location{} do nginx pra mandar essas requests? POr enquanto meu default.conf está assim, mas o POST, DEL, e PUT não estão funcionando:
server {
listen 80;
server_name frontend;
root /usr/share/nginx/html;
index index.html index.html;
location /api/all {
proxy_pass http://backend:8080/http://backend:8080/javaee/rest/logs/all;
}
location /api/manual {
proxy_pass http://backend:8080/http://backend:8080/javaee/rest/logs/manual;
}
location / {
try_files $uri $uri/ /index.html;
}
location ~* ^/api/(.*) {
proxy_pass http://backend:8080/javaee/rest/logs/$1$is_args$args;
}
}
meu logservice.ts
import { Injectable } from '@angular/core';
import { HttpClient } from '@angular/common/http';
import { Observable } from 'rxjs';
import { Log } from './model/log';
@Injectable({
providedIn: 'root'
})
export class LogService {
//testando local OK
private baseUrl = 'http://localhost:8080/javaee/rest/logs'
private baseUrl = '/api'
constructor(private http: HttpClient) { }
getAll(): Observable<any> {
return this.http.get(`${this.baseUrl}/all`);
}
getLog(id: number): Observable<any>{
return this.http.get(`${this.baseUrl}/${id}`);
}
deleteLog(id: number): Observable<any>{
return this.http.delete(`${this.baseUrl}?id=${id}`, { responseType: 'text' })
}
updateLog(log: Object): Observable<Object>{
return this.http.put(`${this.baseUrl}`, log);
}
createLog(log: Object): Observable<Object>{
return this.http.post(`${this.baseUrl}/manual`, log);
}
}