

Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.

# Perilaku API dengan repositori hulu
<a name="upstream-repo-api-behavior"></a>

 Saat Anda memanggil tertentu CodeArtifact APIs pada repositori yang terhubung ke repositori hulu, perilakunya mungkin berbeda tergantung pada apakah paket atau versi paket disimpan di repositori target atau repositori hulu. Perilaku ini APIs didokumentasikan di sini. 

Untuk informasi selengkapnya CodeArtifact APIs, lihat [Referensi CodeArtifact API](https://docs.aws.amazon.com/codeartifact/latest/APIReference/Welcome.html).

Sebagian besar APIs referensi paket atau versi paket akan mengembalikan `ResourceNotFound` kesalahan jika versi paket yang ditentukan tidak ada di repositori target. Hal ini berlaku bahkan jika paket atau versi paket ada dalam repositori hulu. Secara efektif, repositori upstream diabaikan saat memanggil ini. APIs Ini APIs adalah:
+ DeletePackageVersions
+ DescribePackageVersion
+ GetPackageVersionAsset
+ GetPackageVersionReadme
+ ListPackages
+ ListPackageVersionAssets
+ ListPackageVersionDependencies
+ ListPackageVersions
+ UpdatePackageVersionsStatus

Untuk menunjukkan perilaku ini, kita memiliki dua repositori: `target-repo` dan `upstream-repo`. `target-repo` kosong dan mengonfigurasi `upstream-repo` sebagai repositori hulu. `upstream-repo` berisi paket npm `lodash`.

Ketika memanggil API `DescribePackageVersion` pada `upstream-repo`, yang berisi paket `lodash`, kita mendapatkan output berikut:

```
{
    "packageVersion": {
        "format": "npm",
        "packageName": "lodash",
        "displayName": "lodash",
        "version": "4.17.20",
        "summary": "Lodash modular utilities.",
        "homePage": "https://lodash.com/",
        "sourceCodeRepository": "https://github.com/lodash/lodash.git",
        "publishedTime": "2020-10-14T11:06:10.370000-04:00",
        "licenses": [
            {
                "name": "MIT"
            }
        ],
        "revision": "Ciqe5/9yicvkJT13b5/LdLpCyE6fqA7poa9qp+FilPs=",
        "status": "Published"
    }
```

Ketika memanggil API yang sama pada `target-repo`, yang kosong tetapi mengonfigurasi `upstream-repo` sebagai hulu, kita mendapatkan output sebagai berikut:

```
An error occurred (ResourceNotFoundException) when calling the DescribePackageVersion operation: 
Package not found in repository. RepoId: {{repo-id}}, Package = PackageCoordinate{packageType=npm, packageName=lodash},
```

 Perilaku API `CopyPackageVersions` berbeda. Secara default, API `CopyPackageVersions` hanya menyalin versi paket yang disimpan dalam repositori target. Jika disimpan dalam repositori hulu tetapi tidak dalam repositori target, versi paket tidak akan disalin. Untuk menyertakan paket versi dari paket yang hanya disimpan di repositori hulu, tetapkan nilai `includeFromUpstream` ke `true` dalam permintaan API Anda. 

Untuk informasi API `CopyPackageVersions` lebih lanjut, lihat [Menyalin paket antar-repositori](copy-package.md).