Metadata-Version: 2.1
Name: qiita-sdk
Version: 0.0.1
Summary: Qiita SDK for Pyrhon
Home-page: https://github.com/nanato12/qiita-sdk-python
Author: nanato12
Author-email: admin@nanato12.info
Maintainer: nanato12
Maintainer-email: admin@nanato12.info
License: MIT License
Keywords: qiita qiita-sdk
Classifier: License :: OSI Approved :: MIT License
Classifier: Intended Audience :: Developers
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3 :: Only
Classifier: Programming Language :: Python :: 3.8
Classifier: Programming Language :: Python :: 3.9
Classifier: Programming Language :: Python :: 3.10
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Classifier: Topic :: Software Development
Requires-Python: >=3.8
Description-Content-Type: text/markdown
Requires-Dist: python-dateutil >=2.5.3
Requires-Dist: setuptools >=21.0.0
Requires-Dist: urllib3 <2.1.0,>=1.25.3
Requires-Dist: pydantic >=2
Requires-Dist: typing-extensions >=4.7.1

# 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](http://ja.wikipedia.org/wiki/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ヘッダ](http://tools.ietf.org/html/rfc5988) を含んだレスポンスを返します。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](https://openapi-generator.tech) 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](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:

```sh
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:
```python
import qiita.v2
```

### Setuptools

Install via [Setuptools](http://pypi.python.org/pypi/setuptools).

```sh
python setup.py install --user
```
(or `sudo python setup.py install` to install the package for all users)

Then import the package:
```python
import qiita.v2
```

### Tests

Execute `pytest` to run the tests.

## Getting Started

Please follow the [installation procedure](#installation--usage) and then run the following:

```python

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


## Documentation For Models

 - [AddGroupMemberRequest](docs/AddGroupMemberRequest.md)
 - [AuthenticatedUser](docs/AuthenticatedUser.md)
 - [Comment](docs/Comment.md)
 - [CreateCommentRequest](docs/CreateCommentRequest.md)
 - [CreateGroupRequest](docs/CreateGroupRequest.md)
 - [CreateImportedCommentRequest](docs/CreateImportedCommentRequest.md)
 - [CreateItemRequest](docs/CreateItemRequest.md)
 - [DeleteGroupMemberRequest](docs/DeleteGroupMemberRequest.md)
 - [GetAuthenticatedUserItemsResponseInner](docs/GetAuthenticatedUserItemsResponseInner.md)
 - [GetAuthenticatedUserItemsResponseInnerGroup](docs/GetAuthenticatedUserItemsResponseInnerGroup.md)
 - [GetAuthenticatedUserItemsResponseInnerTagsInner](docs/GetAuthenticatedUserItemsResponseInnerTagsInner.md)
 - [GetAuthenticatedUserItemsResponseInnerTeamMembership](docs/GetAuthenticatedUserItemsResponseInnerTeamMembership.md)
 - [GetAuthenticatedUserItemsResponseInnerUser](docs/GetAuthenticatedUserItemsResponseInnerUser.md)
 - [Group](docs/Group.md)
 - [GroupMember](docs/GroupMember.md)
 - [IssueAccessTokenRequest](docs/IssueAccessTokenRequest.md)
 - [IssueAccessTokenResponse](docs/IssueAccessTokenResponse.md)
 - [Item](docs/Item.md)
 - [ItemTag](docs/ItemTag.md)
 - [ItemTeamMembership](docs/ItemTeamMembership.md)
 - [LikeHistory](docs/LikeHistory.md)
 - [UpdateCommentRequest](docs/UpdateCommentRequest.md)
 - [UpdateGroupRequest](docs/UpdateGroupRequest.md)
 - [UpdateItemRequest](docs/UpdateItemRequest.md)
 - [User](docs/User.md)


<a id="documentation-for-authorization"></a>
## Documentation For Authorization


Authentication schemes defined for the API:
<a id="Bearer"></a>
### Bearer

- **Type**: Bearer authentication


## Author

admin@okj.info


