AndServer
v2.1.12
AndServerはHTTPおよびリバースプロキシサーバーです。
AndroidプラットフォームのWebサーバーとWebフレームワーク。 SpringMVCのような注釈を提供し、SpringMVCに精通している場合は、非常に迅速にマスターできます。
Webサーバーの展開:
Server server = AndServer . webServer ( context )
. port ( 8080 )
. timeout ( 10 , TimeUnit . SECONDS )
. build ();
// startup the server.
server . startup ();
...
// shutdown the server.
server . shutdown ();また、 inetAddress(InetAddress) 、 serverSocketFactory(ServerSocketFactory) 、 sslContext(SSLContext)などの機能もあります。
@ RestController
@ RequestMapping ( path = "/user" )
public class UserController {
@ PostMapping ( "/login" )
public String login ( @ RequestParam ( "account" ) String account ,
@ RequestParam ( "password" ) String password ) {
...
return "Successful." ;
}
@ GetMapping ( path = "/{userId}" )
public User info ( @ PathVariable ( "userId" ) String userId ,
@ QueryParam ( "fields" ) String fields ) {
User user = findUserById ( userId , fields );
...
return user ;
}
@ PutMapping ( path = "/{userId}" )
public void modify ( @ PathVariable ( "userId" ) String userId
@ RequestParam ( "age" ) int age ) {
...
}
}上記のコードは、次の2つのHTTP APIを生成します。
POST http://.../user/login
GET http://.../user/uid_001?fields=id,name,age
PUT http://.../user/uid_001
クライアントとの接続情報を取得します。
@ GetMapping ( path = "/connection" )
void getConnection ( HttpRequest request , ...) {
request . getLocalAddr (); // HostAddress
request . getLocalName (); // HostName
request . getLocalPort (); // server's port
request . getRemoteAddr (); // HostAddress
request . getRemoteHost (); // Especially HostName, second HostAddress
request . getRemotePort (); // client's port
...
}ドキュメントと追加情報については、Webサイトを参照してください。
リバースプロキシサーバーを展開します。
Server server = AndServer . proxyServer ()
. addProxy ( "www.example1.com" , "http://192.167.1.11:8080" )
. addProxy ( "example2.com" , "https://192.167.1.12:9090" )
. addProxy ( "55.66.11.11" , "http://www.google.com" )
. addProxy ( "192.168.1.11" , "https://github.com:6666" )
. port ( 80 )
. timeout ( 10 , TimeUnit . SECONDS )
. build ();
// startup the server.
server . startup ();
...
// shutdown the server.
server . shutdown ();注:これは単なる逆プロキシであり、負荷のバランスを処理する能力がありません。
プロジェクトビルドスクリプトにプラグインを追加します。
buildscript {
repositories {
google()
mavenCentral()
}
dependencies {
classpath ' com.yanzhenjie.andserver:plugin:2.1.12 '
.. .
}
}
allprojects {
repositories {
google()
mavenCentral()
}
}
.. .次に、モジュールにAndServer依存関係を追加します。
apply plugin : ' com.yanzhenjie.andserver '
.. .
dependencies {
implementation ' com.yanzhenjie.andserver:api:2.1.12 '
annotationProcessor ' com.yanzhenjie.andserver:processor:2.1.12 '
.. .
} Kotlinを使用している場合は、 annotationProcessor kaptに置き換えます。
プルリクエストを送信する前に、貢献者は契約を順守する必要があります。
Copyright Zhenjie Yan
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.