web-dev-qa-db-ja.com

プライベートAPIを呼び出すパブリックAPIを公開することは良い習慣ですか?

これはアーキテクチャの問題についての詳細です。

私はLumenまたはSlimでマイクロサービスを開発します。一般からはアクセスできません。プライベートマイクロサービスはプライベートなものを扱います。 LaravelバックエンドはREST API(プライベート/内部使用のみ)を介してマイクロサービスと通信します。)ユーザーはマイクロサービスについて何も知りません。

フロントエンドWebサイト(公開)がハッキングされた場合、マイクロサービス上のプライベートなものへのアクセスによる被害を最小限に抑えます。

ただし、ユーザーがパブリックAPIを使用してマイクロフロントエンドへのリクエストを実行するパブリックフロントエンドから通信することを望んでいます。私にとってこれは重複したAPIリクエストのようです-1つはパブリック用、もう1つはプライベート用(マイクロサービスへのバックエンド)?それともそのデザインに問題はありませんか?

enter image description here

5
I'll-Be-Back

これはかなりしっかりしたデザインです。

このようにして、パブリックAPIは同じままで、マイクロサービスを別のものに変更または置き換えることができます。

4
Pieter B

これは、何らかの形式の管理システムやレポートなどが必要な場合など、プライベートAPIがパブリックAPIが予期しないことを行う必要がある場合に意味があります。

パブリックAPIをプライベートに呼び出すと、ほとんどのビジネスロジックがプライベートAPI内にのみ存在し、他のパブリックAPIまたはサイトに複製されません。

2
HorusKol