Angular12 min read

HTTP POST: Send Data to the Backend

Send data to APIs using HttpClient.post with clean error handling patterns.

Victoria Nguyen
August 10, 2025
10.0k284

Posting data is how you create users, save forms, submit orders, and more.

Create an API method

import { Injectable } from '@angular/core';
import { HttpClient } from '@angular/common/http';
import { Observable } from 'rxjs';

export type CreateUserRequest = { name: string; email: string };
export type CreateUserResponse = { id: string };

@Injectable({ providedIn: 'root' })
export class UsersApi {
  constructor(private http: HttpClient) {}

  createUser(payload: CreateUserRequest): Observable<CreateUserResponse> {
    return this.http.post<CreateUserResponse>('/api/users', payload);
  }
}

Use it on submit

submit() {
  if (this.form.invalid) return;

  const payload = {
    name: this.form.controls.name.value,
    email: this.form.controls.email.value,
  };

  this.api.createUser(payload).subscribe({
    next: res => console.log('Created user:', res.id),
    error: err => console.error('Create failed:', err),
  });
}

Pro tip

Keep API calls inside services, not directly in templates.

Next: HTTP interceptors for auth tokens and logging.

#Angular#HTTP#Intermediate