私はRest APIリクエストを送信して処理する方法を学びました。したがって、外部ユーザーがAPIへの接続をオープンする方法、リクエストメソッドを設定する方法返されたメッセージを処理します。
しかし、私自身のレストウェブサービスの作成には時間がかかりました。サーバーがどのようにコミュニケーションを処理するかだけに精通していないので、ちょっと残念です。
通信を可能にするように接続を設定することはできますが、接続の詳細は特に気にしません。
以下は、サーバーを初期化する方法です。サーバーを接続し、クライアントが切断するまで何かが接続され、短い会話があるまで待機します。Restサーバーを構築する
public void Initialise(){
try {
ServerSocket s = new ServerSocket(21); //TODO: Change port?
while(true){
Socket incoming = s.accept();
Runnable r = new ConnectionManager(incoming);
Thread t = new Thread(r);
t.start();
}
}
catch(IOException e){
e.printStackTrace();
}
}
そして、接続を処理するクラス。私が行う方法のわからないんだけど、何
public class ConnectionManager implements Runnable{
private Socket incoming;
public ConnectionManager(Socket i){
this.incoming = i;
}
@Override
public void run() {
try{
try{
//Initialise IOStreams
InputStream inStream = incoming.getInputStream();
OutputStream outStream = incoming.getOutputStream();
Scanner in = new Scanner(inStream);
PrintWriter out = new PrintWriter(outStream, true);
out.println("TODO: Change this message. Press Q to quit.");
boolean done = false;
while (!done && in.hasNextLine()){
String line = in.nextLine();
out.println("Echo: " +line);
if (line.trim().equals("Q")){
done = true;
}
}
}
finally{
incoming.close();
}
}
catch (IOException e){
e.printStackTrace();
}
}
}
は、私は残りの要求をリッスンアプリケーションの構築を開始し、それに応じてそれらを処理する方法です。私は、接続を調べると、APIリクエストを処理する機能をエンジニアリングすることができると確信していますが、ユーザーから送信されたRestリクエストの詳細を表示する方法はわかりません。例えば
、ユーザーは私が要求を調べ、その後に応じてそれを処理するにはどうすればよいように
GET exampleAPI/endpoint?params
として、要求を送信した場合?
は例えば、クライアント側で、あなたは、そのようなあなたがにGETリクエストを送信できるようになる
HttpURLConnection c = (HttpURLConnection) targetURL.openConnection();
c.setRequestMethod("GET");
のプロセスに従うことができるようになるのHttpURLConnectionを使用するよう要求、アプローチを開始したときターゲットURI。
SocketのJavaドキュメントを見ると、着信要求とアクティブな接続をどのように見ることができるか分かりません。
何か不足していますか、まったく間違っていますか?また
なぜJAX-WSまたはJersyを使用できないのですか?制限はありますか? – developer
答えはありませんが、このためにフレームワークを使用することをお勧めします。彼らはあなたが手で書くことを試みているすべてのものの機能性を提供します。 – UnholySheep
@javaguy制限はありません。私は、Restサーバーを構築する経験が不足しているので、ベストプラクティスとセットアップが不明です。 – Potatosaurus