macOS curlでPOST

curlでAPIGateway POST

AWS API GatewayなどWebAPIのテストを行う場合、さまざまなRESTクライアントツールがありますがmacOSのターミナルからコマンドラインツールのcurlは使い勝手もいいので快適です。curlmacOSのパッケージ管理ツールHomebrewを使えばコマンド1行でインストール可能です。curlのインストールコマンドは下記です。

brew install curl

curlはコマンドにURLを入れるだけでGETとして利用できます。

curl https://mjeld.com/

WebAPIに接続する場合GET以外にもPOST, DELETE, PUTなども使います。その場合下記のようなコマンドで可能です。

# POST の場合
curl -X POST -H "Content-Type: application/json" -d '{"key1":"値1", "key2":"値2"}' https://xxxxx.execute-api.ap-northeast-1.amazonaws.com/xxx

-Xの後をDELETE,PUTに入れ替えることもできます。-Hはヘッダーで-dはデータです。ヘッダーやデータの文字列が多い場合@を付ければファイル名を指定できます。

# DELETE
curl -X DELETE -H @header.txt -d @body.txt https://xxxx.execute-api.ap-northeast-1.amazonaws.com/

# PUT
curl -X PUT -H @header.txt -d @body.txt https://xxxx.execute-api.ap-northeast-1.amazonaws.com/

SwiftUI split カンマ区切りなどの文字列を区切る場合

SwiftUI split components

Swiftの文字列Split区切り処理にはsplitとcomponentsがある。わたしの認識したこの2つの違いは戻り値がsplitの場合は[Substring]でcomponentsは[String]ということです。componentsを使い文字列を区切った処理するSwiftUIの場合、下記のようなコードです。

struct TComponentsView: View  {
    @State var s1: String = ""
    var body: some View {
        VStack {
            TextField("TextField", text: self.$s1)
            ForEach(s1.components(separatedBy: " "), id: \.self){
                Text("\($0)")
            }
            Spacer()
        }
    }
}

splitの場合下記のコードです。

struct TSplitView: View {
    @State var s1: String = ""
    var body: some View {
        VStack {
            TextField("TextField", text: self.$s1)
            ForEach(s1.split(separator: " "), id: \.self.description){
                Text("\($0.description)")
            }
            Spacer()
        }
    }
}

2022 MJELD TECHNOLOGIES. ALL RIGHTS RESERVED