python은 toapi 라이브러리를 이용하여api를 자동으로 생성합니다

3878 단어 pythontoapi창고api
인터페이스 테스트 자동화를 배울 때 우리는 종종 간단한 TODO API를 쓰는 것과 같은 간단한 API를 직접 쓴다.
그러나 자신이 API를 쓸 때 가짜 데이터를 만들고 페이지 논리를 처리해야 하기 때문에 처음에는 재미있었지만 시간이 지나면 무미건조해졌다.
이때 당신은 어떤 도구가 자동으로 한 온라인 사이트를 간단한 API로 바꿀 수 있는지 생각할 수 있습니다.
이런 도구는 확실히 존재하고 적지 않다. 그 중에서python 언어에서 비교적 환영받는 실현은https://github.com/gaojiuli/toapi프로젝트, 프로젝트 이름은 toapi입니다.
이 라이브러리를 간단히 체험해 봅시다.
설치
먼저 설치합니다.

pip install toapi
pip install cssselect
과학 기술로 재정의된 과정 목록 페이지를 API로 전환
http://www.itest.info/courses 이것은 과학기술로 재정립된 과정 목록 페이지로 현재 우리가 개설한 모든 과정을 포함한다.
현재 우리는 이 페이지를 API로 전환합니다. 이 API는 모든 과정의 이름과 URL을 되돌려줍니다.

from flask import request
from htmlparsing import Attr, Text
from toapi import Api, Item

api = Api()

@api.site('http://www.itest.info')
@api.list('.col-md-3')
@api.route('/courses?page={page}', '/courses')
@api.route('/courses', '/courses')
class Course(Item):
  url = Attr('a', 'href')
  title = Text('h4')

api.run(debug=True, host='0.0.0.0', port=12306)
운행

python app.py
결과 보기
curl localhost:12306/courses
결과 반환

{
  "Course": [
    {
      "title": " ",
      "url": "/courses/9"
    },
    {
      "title": " ",
      "url": "/courses/7"
    },
    {
      "title": " --Python ",
      "url": "/courses/6"
    },
    {
      "title": "Selenium --Python ",
      "url": "/courses/2"
    }
  ]
}
공식적인 예
hacknews 웹 사이트를 API로 전환

from flask import request
from htmlparsing import Attr, Text
from toapi import Api, Item

api = Api()


@api.site('https://news.ycombinator.com')
@api.list('.athing')
@api.route('/posts?page={page}', '/news?p={page}')
@api.route('/posts', '/news?p=1')
class Post(Item):
  url = Attr('.storylink', 'href')
  title = Text('.storylink')


@api.site('https://news.ycombinator.com')
@api.route('/posts?page={page}', '/news?p={page}')
@api.route('/posts', '/news?p=1')
class Page(Item):
  next_page = Attr('.morelink', 'href')

  def clean_next_page(self, value):
    return api.convert_string('/' + value, '/news?p={page}', request.host_url.strip('/') + '/posts?page={page}')


api.run(debug=True, host='0.0.0.0', port=5000)
결과

{
 "Page": {
  "next_page": "http://127.0.0.1:5000/posts?page=2"
 },
 "Post": [
  {
   "title": "Mathematicians Crack the Cursed Curve",
   "url": "https://www.quantamagazine.org/mathematicians-crack-the-cursed-curve-20171207/"
  },
  {
   "title": "Stuffing a Tesla Drivetrain into a 1981 Honda Accord",
   "url": "https://jalopnik.com/this-glorious-madman-stuffed-a-p85-tesla-drivetrain-int-1823461909"
  }
 ]
}
총결산
  • toapi의 사용은 매우 간단하지만 실제로api의 창설과 파충류를 결합시켰다
  • toapi는 비교적 완비된 캐시 메커니즘을 제공하여 첫 방문이 아닌 속도가 매우 빠를 것이다
  • 일정한 파충류 능력을 가진 테스트 학생은 toapi로 간단한 mock 서버를 실현할 수 있지만 get 인터페이스에만 한정된다
    이상은python이toapi 라이브러리를 이용하여api를 자동으로 생성하는 상세한 내용입니다. 더 많은pythontoapi 라이브러리가api를 자동으로 생성하는 것에 대한 자료는 저희 다른 관련 글을 주목해 주십시오!

    좋은 웹페이지 즐겨찾기