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でアクセスできます。
- https://qiita.com/api/v2/schema
- https://qiita.com/api/v2/schema?locale=en
- https://qiita.com/api/v2/schema?locale=ja
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
- AddGroupMemberRequest
- AuthenticatedUser
- Comment
- CreateCommentRequest
- CreateGroupRequest
- CreateImportedCommentRequest
- CreateItemRequest
- DeleteGroupMemberRequest
- GetAuthenticatedUserItemsResponseInner
- GetAuthenticatedUserItemsResponseInnerGroup
- GetAuthenticatedUserItemsResponseInnerTagsInner
- GetAuthenticatedUserItemsResponseInnerTeamMembership
- GetAuthenticatedUserItemsResponseInnerUser
- Group
- GroupMember
- IssueAccessTokenRequest
- IssueAccessTokenResponse
- Item
- ItemTag
- ItemTeamMembership
- LikeHistory
- UpdateCommentRequest
- UpdateGroupRequest
- UpdateItemRequest
- User
Documentation For Authorization
Authentication schemes defined for the API:
Bearer
- Type: Bearer authentication
Author
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Hashes for qiita_sdk-0.0.1-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 9e80ef4e28dffcf828d58ac5bda47b792f65a880651b2e41df603fde5b31d43d |
|
MD5 | a00e4420a56cd3198d09c150e023a03b |
|
BLAKE2b-256 | c797b3bf345e3135a5cdb04da77ff026f36c3fe1ab94ff02fbfc3ce3d6a2a9b8 |