Skip to main content

Qiita SDK for Pyrhon

Project description

qiita.v2

概要

このドキュメントではQiita API v2の仕様について説明します。

リクエスト

APIとの全ての通信にはHTTPSプロトコルを利用します。アクセス先のホストには、Qiitaのデータを利用する場合には qiita.com を利用し、Qiita Teamのデータを利用する場合には *.qiita.com を利用します ( * には所属しているTeamのIDが入ります)。

パラメータ

API v2へのリクエストには、GET、POST、PUT、PATCH、DELETEの5種類のHTTPメソッドを利用します。多くのAPIへのリクエストにはパラメータを含められますが、GETリクエストにパラメータを含める場合にはURIクエリを利用し、それ以外の場合にはリクエストボディを利用します。パラメータには、ページネーション用途など任意で渡すものと、投稿時の本文など必須のものが存在します。APIドキュメントには、各APIごとに送信可能なパラメータが記載されています。

利用制限

認証している状態ではユーザーごとに1時間に1000回まで、認証していない状態ではIPアドレスごとに1時間に60回までリクエストを受け付けます。

シングルサインオンを利用中のチームについて

シングルサインオンによる認証のみを許可しているQiita Teamのチームでは、セキュリティ上の理由から、チーム別アクセストークンでのみAPIを利用したアクセスが可能です。

ステータスコード

200、201、204、400、401、403、404、500の8種類のステータスコードを利用します。GETまたはPATCHリクエストに対しては200を、POSTリクエストに対しては201を、PUTまたはDELETEリクエストに対しては204を返します。但し、エラーが起きた場合にはその他のステータスコードの中から適切なものを返します。

データ形式

APIとのデータの送受信にはJSONを利用します。JSONをリクエストボディに含める場合、リクエストのContent-Typeヘッダにapplication/jsonを指定してください。但し、GETリクエストにバラメータを含める場合にはURIクエリを利用します。また、PUTリクエストまたはDELETEリクエストに対してはレスポンスボディが返却されません。日時を表現する場合には、ISO 8601 形式の文字列を利用します。

GET /api/v2/items?page=1&per_page=20 HTTP/1.1

エラーレスポンス

エラーが発生した場合、エラーを表現するオブジェクトを含んだエラーレスポンスが返却されます。このオブジェクトには、エラーの内容を説明するmessageプロパティと、エラーの種類を表すtypeプロパティで構成されます。typeプロパティはエラーの種類ごとに一意な文字列で、^[a-z0-9_]+$ というパターンで表現できます。

{
  \"message\": \"Not found\",
  \"type\": \"not_found\"
}

ページネーション

一部の配列を返すAPIでは、全ての要素を一度に返すようにはなっておらず、代わりにページを指定できるようになっています。これらのAPIには、1から始まるページ番号を表すpageパラメータと、1ページあたりに含まれる要素数を表すper_pageパラメータを指定することができます。pageの初期値は1、pageの最大値は100に設定されています。また、per_pageの初期値は20、per_pageの最大値は100に設定されています。

ページを指定できるAPIでは、Linkヘッダ を含んだレスポンスを返します。Linkヘッダには、最初のページと最後のページへのリンクに加え、存在する場合には次のページと前のページへのリンクが含まれます。個々のリンクにはそれぞれ、first、last、next、prevという値を含んだrel属性が紐付けられます。

Link: <https://qiita.com/api/v2/users?page=1>; rel=\"first\",
      <https://qiita.com/api/v2/users?page=1>; rel=\"prev\",
      <https://qiita.com/api/v2/users?page=3>; rel=\"next\",
      <https://qiita.com/api/v2/users?page=6>; rel=\"last\"

また、ページを指定できるAPIでは、要素の合計数が Total-Count レスポンスヘッダに含まれます。

Total-Count: 6

JSON Schema

Qiita API v2では、APIのインターフェースを定義したJSON-Schemaを提供しています。このスキーマでは、APIでどのようなリソースが提供されているか、それらはどのようなプロパティを持っているか、それらがどのように表現されるか、及びどのような操作が提供されているかといった事柄が定義されています。スキーマには、次のURLでアクセスできます。

This Python package is automatically generated by the OpenAPI Generator project:

  • API version: 0.0.1
  • Package version: 1.0.0
  • Generator version: 7.5.0
  • Build package: org.openapitools.codegen.languages.PythonClientCodegen For more information, please visit https://github.com/nanato12

Requirements.

Python 3.7+

Installation & Usage

pip install

If the python package is hosted on a repository, you can install directly using:

pip install git+https://github.com/nanato12/qiita-api-sdk-python.git

(you may need to run pip with root permission: sudo pip install git+https://github.com/nanato12/qiita-api-sdk-python.git)

Then import the package:

import qiita.v2

Setuptools

Install via Setuptools.

python setup.py install --user

(or sudo python setup.py install to install the package for all users)

Then import the package:

import qiita.v2

Tests

Execute pytest to run the tests.

Getting Started

Please follow the installation procedure and then run the following:

import qiita.v2
from qiita.v2.rest import ApiException
from pprint import pprint

# Defining the host is optional and defaults to https://qiita.com
# See configuration.py for a list of all supported configuration parameters.
configuration = qiita.v2.Configuration(
    host = "https://qiita.com"
)

# The client must configure the authentication and authorization parameters
# in accordance with the API server security policy.
# Examples for each auth method are provided below, use the example that
# satisfies your auth use case.

# Configure Bearer authorization: Bearer
configuration = qiita.v2.Configuration(
    access_token = os.environ["BEARER_TOKEN"]
)


# Enter a context with an instance of the API client
with qiita.v2.ApiClient(configuration) as api_client:
    # Create an instance of the API class
    api_instance = qiita.v2.TeamApi(api_client)
    url_name = 'url_name_example' # str | グループのチーム上での一意な名前
    add_group_member_request = qiita.v2.AddGroupMemberRequest() # AddGroupMemberRequest |  (optional)

    try:
        # Add group members
        api_response = api_instance.add_group_members(url_name, add_group_member_request=add_group_member_request)
        print("The response of TeamApi->add_group_members:\n")
        pprint(api_response)
    except ApiException as e:
        print("Exception when calling TeamApi->add_group_members: %s\n" % e)

Documentation for API Endpoints

All URIs are relative to https://qiita.com

Class Method HTTP request Description
TeamApi add_group_members POST /api/v2/groups/{url_name}/members Add group members
TeamApi create_comment POST /api/v2/items/{item_id}/comments Create comment
TeamApi create_group POST /api/v2/groups Create group
TeamApi create_imported_comment POST /api/v2/items/{item_id}/imported_comments Create imported comment
TeamApi create_item POST /api/v2/items Create item
TeamApi create_item_stock PUT /api/v2/items/{item_id}/stock Create item stock
TeamApi delete_comment DELETE /api/v2/comments/{comment_id} Delete comment
TeamApi delete_group DELETE /api/v2/groups/{url_name} Delete group
TeamApi delete_group_members DELETE /api/v2/groups/{url_name}/members Delete group members
TeamApi delete_item DELETE /api/v2/items/{item_id} Get item stockers
TeamApi delete_item_stock DELETE /api/v2/items/{item_id}/stock Delete item stock
TeamApi get_authenticated_user GET /api/v2/authenticated_user Get authenticated user
TeamApi get_authenticated_user_items GET /api/v2/authenticated_user/items Get authenticated user items
TeamApi get_comment GET /api/v2/comments/{comment_id} Get comment
TeamApi get_group GET /api/v2/groups/{url_name} Get group
TeamApi get_group_member GET /api/v2/groups/{url_name}/members/{user_id} Get group member
TeamApi get_group_members GET /api/v2/groups/{url_name}/members Get group members
TeamApi get_groups GET /api/v2/groups Get groups
TeamApi get_item GET /api/v2/items/{item_id} Get item
TeamApi get_item_comments GET /api/v2/items/{item_id}/comments Get item comments
TeamApi get_item_stockers GET /api/v2/items/{item_id}/stockers Get item stockers
TeamApi get_items GET /api/v2/items Get items
TeamApi get_oauth_team_authorize GET /api/v2/oauth/team_authorize Get OAuth team authorize
TeamApi is_item_stock GET /api/v2/items/{item_id}/stock Is item stock
TeamApi update_comment PATCH /api/v2/comments/{comment_id} Update comment
TeamApi update_group PATCH /api/v2/groups/{url_name} Update group
TeamApi update_item PATCH /api/v2/items/{item_id}
UserApi create_comment POST /api/v2/items/{item_id}/comments Create comment
UserApi create_item POST /api/v2/items Create item
UserApi create_item_like PUT /api/v2/items/{item_id}/like Create item like
UserApi create_item_stock PUT /api/v2/items/{item_id}/stock Create item stock
UserApi delete_api_v2_access_tokens_access_token DELETE /api/v2/access_tokens/{access_token}
UserApi delete_comment DELETE /api/v2/comments/{comment_id} Delete comment
UserApi delete_item DELETE /api/v2/items/{item_id} Get item stockers
UserApi delete_item_like DELETE /api/v2/items/{item_id}/like Delete item like
UserApi delete_item_stock DELETE /api/v2/items/{item_id}/stock Delete item stock
UserApi follow PUT /api/v2/users/{user_id}/following Follow
UserApi get_authenticated_user GET /api/v2/authenticated_user Get authenticated user
UserApi get_authenticated_user_items GET /api/v2/authenticated_user/items Get authenticated user items
UserApi get_comment GET /api/v2/comments/{comment_id} Get comment
UserApi get_item GET /api/v2/items/{item_id} Get item
UserApi get_item_comments GET /api/v2/items/{item_id}/comments Get item comments
UserApi get_item_likes GET /api/v2/items/{item_id}/likes Get item likes
UserApi get_item_stockers GET /api/v2/items/{item_id}/stockers Get item stockers
UserApi get_items GET /api/v2/items Get items
UserApi get_oauth_authorize GET /api/v2/oauth/authorize Get OAuth authorize
UserApi get_user GET /api/v2/users/{user_id} Get user
UserApi get_user_followees GET /api/v2/users/{user_id}/followees Get user followees
UserApi get_user_followers GET /api/v2/users/{user_id}/followers Get user followers
UserApi get_users GET /api/v2/users Get users
UserApi is_item_like GET /api/v2/items/{item_id}/like Is item like
UserApi is_item_stock GET /api/v2/items/{item_id}/stock Is item stock
UserApi is_user_following GET /api/v2/users/{user_id}/following Is user following
UserApi issue_access_tokens POST /api/v2/access_tokens Issue access token
UserApi unfollow DELETE /api/v2/users/{user_id}/following Unfollow
UserApi update_comment PATCH /api/v2/comments/{comment_id} Update comment
UserApi update_item PATCH /api/v2/items/{item_id}

Documentation For Models

Documentation For Authorization

Authentication schemes defined for the API:

Bearer

  • Type: Bearer authentication

Author

admin@okj.info

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

qiita_sdk-0.0.1.tar.gz (69.2 kB view hashes)

Uploaded Source

Built Distribution

qiita_sdk-0.0.1-py3-none-any.whl (225.1 kB view hashes)

Uploaded Python 3

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page