Skip to content

acksession/marketplace-api-clients

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

3 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

marketplace-api-clients

Generated Python (and future TypeScript) clients for every marketplace EasyeSuite integrates with. One repo, many marketplaces, one regen pipeline.

Layout

marketplace-api-clients/
├── specs/                    # OpenAPI YAMLs — source of truth for codegen
│   └── <marketplace>/<spec>.yaml
├── <marketplace>/<package>/  # generated client per spec
└── .github/workflows/regenerate.yml   # matrix codegen across all marketplaces

Packages

Marketplace Package Path Spec Latest tag
Target target-orders-client target/orders seller_orders-v1 target-orders-v2.0.0
Target target-sellers-client target/sellers sellers-v1 target-sellers-v2.0.0
Target target-taxonomy-client target/taxonomy item_taxonomies-v2 target-taxonomy-v3.0.0

Coming: eBay, Amazon SP-API, Mirakl, Walmart.

Tag scheme

<marketplace>-<package>-v<semver>. Examples:

  • target-orders-v2.0.0
  • target-sellers-v1.1.0
  • ebay-sell-fulfillment-v2.0.0
  • amazon-spapi-v3.0.0

Install

# uv
uv add "target-orders-client   @ git+https://github.com/acksession/marketplace-api-clients.git@target-orders-v2.0.0#subdirectory=target/orders"
uv add "target-sellers-client  @ git+https://github.com/acksession/marketplace-api-clients.git@target-sellers-v2.0.0#subdirectory=target/sellers"
uv add "target-taxonomy-client @ git+https://github.com/acksession/marketplace-api-clients.git@target-taxonomy-v3.0.0#subdirectory=target/taxonomy"

# pip
pip install "target-orders-client @ git+https://github.com/acksession/marketplace-api-clients.git@target-orders-v2.0.0#subdirectory=target/orders"

pyproject.toml snippet

[project]
dependencies = [
    "target-orders-client   @ git+https://github.com/acksession/marketplace-api-clients.git@target-orders-v2.0.0#subdirectory=target/orders",
    "target-sellers-client  @ git+https://github.com/acksession/marketplace-api-clients.git@target-sellers-v2.0.0#subdirectory=target/sellers",
    "target-taxonomy-client @ git+https://github.com/acksession/marketplace-api-clients.git@target-taxonomy-v3.0.0#subdirectory=target/taxonomy",
]

Adding a new marketplace

  1. Drop the OpenAPI YAML(s) into specs/<marketplace>/
  2. Run codegen (see below) — output goes to <marketplace>/<package>/
  3. Add a pyproject.toml per package (use target/orders/pyproject.toml as a template — rename project + package name)
  4. Tag: git tag <marketplace>-<package>-v1.0.0 && git push --tags
  5. Add an entry to the Packages table above

Regenerating clients

docker run --rm -v ${PWD}:/work openapitools/openapi-generator-cli generate \
    -i /work/specs/target/seller_orders-v1.yaml \
    -g python \
    -o /work/target/orders \
    --package-name target_orders_client \
    --additional-properties=projectName=target-orders-client,packageVersion=1.0.1

Then bump version in target/orders/pyproject.toml, commit, tag.

Releasing

Tag prefix per package keeps versions independent.

git tag target-orders-v1.0.1 -m "fix: correct fulfillment payload model"
git push origin target-orders-v1.0.1

git tag ebay-sell-fulfillment-v2.0.0
git push origin ebay-sell-fulfillment-v2.0.0

Consumers update the @ ref in their pyproject.toml.

Migration history

This repo replaces the deprecated acksession/target-api-clients (now archived). All Target clients moved under target/ to make room for other marketplaces.

License

Proprietary — Acksession internal.

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Packages

 
 
 

Contributors

Languages