Pootle のTastypieベースの REST APIを介してPootleプロジェクトとそのテンプレート文字列を作成および更新する方法の実例はありますか? たとえば、 Slumberを使用して、これを行うための最小限のエレガントな方法を見たいと思っています。
私の場合: Web アプリケーションからいくつかの Pootle プロジェクトを作成したいと考えています。このような各プロジェクトは、Web サービスの記事のコレクション内の 1 つの記事に対応していると考えることができます。これらのプロジェクトのそれぞれについて、私はできる必要があります
- (API を介して) 抽出された (テンプレート) 文字列のリストを使用して最初に作成し、
- 実際の翻訳を提供する (人間、Pootle の Web インターフェース [問題ではない])、
- 理想的にはAPIを介してPOファイルとして翻訳を取得し、
- 人間がより多くの翻訳を実行できるように、翻訳可能な文字列のセットを (API を介して) 更新します。
Pootle の用語集、API 定義、その API 使用上の注意、Tastypie のドキュメント、Slumber のドキュメントを読みましたが、足りない部分があるように感じます。たとえば、Tastypie はリクエスト URL でフィルタリング パラメーターを指定するための優れたオプションを提供しますが、アプリ内で適切なプロジェクトを検索するには、プロジェクトのリスト全体を取得する必要があると感じ、他の人がどのように API を使用しているのか疑問に思います。 .
次のコードは、新しいプロジェクトを正しく作成します。
#!/usr/bin/env python
# -*- coding: UTF-8 -*-
import slumber
api = slumber.API('http://localhost:8000/api/v1/', auth=('admin', 'admin'))
project_data = {
'code': 'test01',
'fullname': 'Test #01',
'description': 'Another test.',
'source_language': '/api/v1/languages/2/',
'translation_projects': [],
}
new_project = api.projects.post(project_data)
そしてnew_project
、次のdictを参照します:
{'backlink': 'http://localhost:8000/projects/test01/',
'checkstyle': 'standard',
'code': 'test01',
'description': '<p>Another test.</p>',
'fullname': 'Test #01',
'ignoredfiles': u'',
'localfiletype': 'po',
'resource_uri': '/api/v1/projects/10/',
'source_language': '/api/v1/languages/2/',
'translation_projects': [],
'treestyle': 'auto'}
たとえば、code
後で値を保持しているとします。id
プロジェクトの(10
から)を取得する最も効率的な方法は何resource_uri
ですか? 私がそれを望む理由は、次のような後のリクエストのためです。
api.projects(10).get()