저는 PHP를 무료로 사용해서 WebAPI를 만들었어요.

17852 단어 PHPSwift

입문


이전에 제작된문자열→알칼리기 서열의 상호 변환 도구를 만들어 보았습니다 (응용판) 웹 버전(PHP)이 이것 때문에 필요 없어졌다
어렵게 만든 PHP 버전도 어디에도 사용할 수 없어서 API화를 시도했다
*주의http

인도물


문서


BluePrint로 API 문서를 만들어 보았습니다. 자세한 내용은 이것을 보십시오
http://adventam10.php.xdomain.jp/dna/api/

출처


다음dna-converter.php.
https://github.com/adventam10/DNAConverter-web/tree/master/api

API화


간단한 WebAPI를 PHP로 구현해 보십시오. 설치 참고!!
이런 느낌으로 설치하면 다음과 같이 XFREE 업로드!!!
무료 PHP 사이트 공개(테스트용)
<?php
header('Content-Type: text/html; charset=UTF-8');

$json_string = file_get_contents('php://input');
$json = json_decode($json_string, true);
$resultCode = checkResultCode($json);
if($resultCode === 0) {
    $arr["resultCode"] = $resultCode;
    $arr["convertedText"] = convert($json["text"], $json["mode"]);
} else {
    $arr["resultCode"] = $resultCode;
}

print json_encode($arr, JSON_PRETTY_PRINT);
스위프트로 확인해주세요.
let urlString = "http://adventam10.php.xdomain.jp/dna/api/dna-converter.php"
var request = URLRequest(url: URL(string: urlString)!)
request.addValue("application/json", forHTTPHeaderField: "Content-Type")
request.httpMethod = "POST"
request.httpBody = try? JSONEncoder().encode(Request(mode: 0, text: "あいうえお"))
let task = URLSession.shared.dataTask(with: request) { (data, _, error) in
  let response = try? JSONDecoder().decode(Response.self, from: data!)
  print(response)
}
task.resume()

struct Request: Codable {
    let mode: Int
    let text: String
}

struct Response: Codable {
    let resultCode: Int
    let convertedText: String
}
다음을 잘 얻었습니다
Optional(Test.Response(resultCode: 0, convertedText: "GCAGCAATCAACGCAGCAATCATAGCAGCAATCATCGCAGCAATCACAGCAGCAATCACC"))

반한 곳


POSTMAN를 확인했습니다. 다음과 같이 요청할 때 모드는 수치가 아니라 문자열로 매혹적입니다.

PHP 설치는 다음과 같습니다.
$resultCode = checkResultCode($_POST);
function checkResultCode($param) {
  if (isset($param["mode"])) {
    $mode = $param["mode"];
    if ($mode === 0 || $mode === 1) { // 文字列なのでここでアウト
      if (!empty($param['text'])) {
        $text = $param['text'];
        if ($mode === 0) {
          return 0;
        } else {
          if (isInvalidDNA($text)) {
            return 4;
          } else {
            return 0;
          }
        }
      } else {
        return 3;
      }
    } else {
      return 2;
    }
  } else {
    return 1;
  }
}
포스맨에서 JSON을 설정하면 수치를 보낸다고 해서 수정했습니다.

단, PHP가 $_POST이기 때문에 값을 받아들일 수 없습니다
보아하니 $_POST JSON을 받아들일 수 없을 것 같다.
참조: JSON Open 자체 검사 데이터 수신 방법
다음과 같이 PHP를 수정합니다.
$json_string = file_get_contents('php://input');
$json = json_decode($json_string, true); // 第2引数にtrueを設定しないとダメらしい
$resultCode = checkResultCode($json);
function checkResultCode($param) {
  if (isset($param["mode"])) {
    $mode = $param["mode"];
    if ($mode === 0 || $mode === 1) {
      if (!empty($param['text'])) {
        $text = $param['text'];
        if ($mode === 0) {
          return 0;
        } else {
          if (isInvalidDNA($text)) {
            return 4;
          } else {
            return 0;
          }
        }
      } else {
        return 3;
      }
    } else {
      return 2;
    }
  } else {
    return 1;
  }
}
순조롭게 수치를 얻었다

문서 작성


가까스로 API Blueprint로 문서를 만들었습니다.
참조: API Blueprint에서 웹 API 문서 생성

반한 곳


node.https://nodejs.org/ja/ 여기서 jsnpm install -g aglio를 얻었기 때문에 권한이 틀렸다
다음과 같은 참고 설정을 진행하여 순조롭게 설치하였다
npm에서permission denied가 될 때의 대처법 [mac]
문서의 작성법을 모르기 때문에 아래의 내용을 참고하면서 그런 것을 써 보았다.
API Blueprint를 사용하여 웹 API 규격서 작성

마지막


어쨌든 PHP로 만든 것도 낭비가 없다
이렇게 하면 어디에서나 DNA 변환이 가능합니다!!!
(swift의 켜기 자체 검사는 라이브러리를 사용하지 않는 방법을 잊어버리고 소박하게 고생했다

좋은 웹페이지 즐겨찾기