問題タブ [spring-rest]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
java - 春のファイルアップロードコンテンツタイプの検証、常にオクテットストリーム?
Restful Spring Boot アプリケーションに pdf ファイルのアップロードを実装しようとしています。
次の方法があります。
FileDTO は、MultipartFile の単なるラッパーです。
次に、Postman を使用してform-data
本文付きのリクエストを POST します'file'=<filename.pdf>
上記の printlns のコンテンツ タイプは常にオクテット ストリームです。送信するファイルの種類 (png、pdf など) に関係なく、常にオクテット ストリームです。Postman で Content-Type ヘッダーとして具体的に設定application/pdf
すると、FileDTO 内の MultipartFile が null になります。
質問は、Spring Controller メソッドに何か問題があるのでしょうか、それとも Postman によってリクエストが正しく構築されていないだけですか?
Postman が Content-Type を正しく取得できない場合、実際のクライアント アプリがコンテンツ タイプを pdf に適切に設定することを期待できますか?
spring - Spring RestTemplate - BufferingClientHttpRequestFactory & SimpleClientHttpRequestFactory
Spring を使用して構築された Rest Client の 1 つで、以下のコードを見ました。この REST クライアントは REST サービス内に存在し、別の REST サービスを呼び出しています。この声明の目的は何ですか?
spring - Spring MVC: RestController にさまざまなクラスを JSON にシリアライズさせる
例として、今日のメッセージ (motd) を返す REST エンドポイントを作成するとします。着信パラメーターは数値で表される日であり、結果は日とメッセージを含む JSON です。
これは次のように翻訳されます...
...そして、このコードによって返されます:
すべてが問題ない限り、これは正常に機能しますが、私の意図は、http ステータス コードと、発生する可能性のあるエラーの理由を説明する JSON の両方を返すことです。
ResponseEntity<Motd>
しかし、これは以前に定義されたものと矛盾します。私がこれまでに知っている唯一の解決策はResponseEntity<String>
、JSON を自分で定義してシリアル化することです。Springが「さまざまな」クラスを返すことを可能にする代替/よりエレガントな代替はありますか?
私の質問の重点はエラー処理ではありません。たとえば、例外に基づいてこれを行うための巧妙な方法がいくつか示されました。そして、可能であれば、返される可能性のあるすべてのクラスを共通の基本クラスから派生させないようにしたいと考えています。
私のコードは Spring Boot 1.3 RC1 に基づいています。
java - スプリングレストシェルに接続したい場合、ジプスターアプリでどのタイプの認証を使用する必要がありますか?
JHipster を使用して、Spring Boot アプリをスキャフォールディングします。jhipster によって生成された REST API にSpring Rest Shellで接続する場合、どの認証タイプを選択すればよいですか?
spring - Spring REST で画像をブラウザに返す方法
Spring コントローラーで画像を返す必要があります。このSpring MVCで答えてみます: @ResponseBodyで画像を返すには? しかし、それは機能していません
私のコードはこのようなものです
しかし、ブラウザーでアクセスすると、何も表示されません (画像アイコンが表示されないだけです)。しかし、画像のバイト配列を読み取ると、空ではありません。コードに何か欠けているものはありますか?
spring-boot - ネストされたオブジェクトの無限再帰 Spring REST
双方向の関係を持つ Spring REST でシリアル化を処理する方法を知りたいです。現在、Spring Boot 1.3.0.BUILD-SNAPSHOT を使用しています。
現在、プライマリ クラスのリポジトリに対する GET リクエストで無限再帰を示す内部サーバー エラーを受信しています。
1 つがリポジトリである 2 つのクラスで動作します。例Aでは、リポジトリを持つものです:
しかし、B の内部に別のクラスを追加すると、それは機能しなくなり、A のリポジトリに GET 要求を送信すると無限再帰が発生します (C は b プロパティで B と同じ注釈を持ちます)。
したがって、私が観察したことから、動作を変更することなく、B への後方参照でクラス C の Jackson アノテーションを省略できます。これは既知の動作ですか、それとも何か不足していますか?
更新 1
B クラスを変更し、C の後方参照を削除して、B オブジェクトと C オブジェクトの間の双方向の関係を取り除こうとしました。
これにより、A のリポジトリでの GET リクエストによる無限再帰がなくなりますが (万歳!)、A のリポジトリに POST を送信するときに C オブジェクトを格納する可能性も排除されます (やった!)。これにより、次のエラー メッセージがスローされます。
org.hibernate.TransientObjectException: オブジェクトが保存されていない一時インスタンスを参照しています - フラッシュする前に一時インスタンスを保存します
更新 2
B クラスのリポジトリを追加しようとしました。これにより、別の無限再帰が発生しました。しかし今回は、エラーが適切に処理されないため、アプリケーションと IDE がクラッシュするだけです。
spring - 特定のドメインからのみデータを取得するSpring MVC/REST
Spring MVC/Rest について質問があります。
次の url を入力して、ユーザーのユーザー詳細 (JSON) を取得できるサービスがあるとしますhttp://localhost:8080/project/api/get/user/1
。
フロントエンド アプリケーションは以下で実行さhttp://localhost:9000/
れ、API からデータを取得できます。ただし、これはどのドメインでも実行できます。そして、私の目標は、単一 (またはリスト) のドメイン/IP のみを提供することです。
そこで、次のフィルターを API に追加して、localhost:9000 からの呼び出しのみを受け入れるようにしました。
今では実際に他のドメインからの呼び出しをブロックしています。ただし、Postman などのツールを使用すると、データを取得できます。何か不足していますか?私がここでやっていることは安全で正しい方法ですか?Postman を使用しているのに、データをフェッチしたり、ポストしたりできるのはなぜですか?